切换图片(圆点)

<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            list-style: none;
        }

        .wrap {
            width: 400px;
            height: 300px;
            border: 5px solid #000;
            margin: 20px auto;
            text-align: center;
            line-height: 25px;
        }

        p {
            background: rgba(255, 255, 0, 0.5);
        }

        img {
            width: 400px;
            height: 250px;
            display: block;
        }

        ul {
            display: flex;
            justify-content: center;
        }

        li {
            width: 20px;
            height: 25px;
            text-align: center;
            display: inline-block;
            background: red;
            margin: 0 10px;
        }
    </style>
</head>

<body>
    <div class="wrap">
        <p>动漫1</p>
        <img src="./img/11.jpg" alt="">
        <ul>
            <li>1</li>
            <li>2</li>
            <li>3</li>
            <li>4</li>
        </ul>
    </div>
    <script>
        // 效果描述: 点击每一个li, 切换图片, 切换p标签的内容
        // 数组里面保对象的方式存储一一对应的多个数据
        // 对象中: 名字  和 图片地址    属性名: 属性值
        var arr = [
            {
                'name': '动漫1',
                'src': './img/11.jpg'
            }, {
                'name': '动漫2',
                'src': './img/22.jpg'
            }, {
                'name': '动漫3',
                'src': './img/33.jpg'
            }, {
                'name': '动漫4',
                'src': './img/44.jpg'
            }
        ];
        console.log(arr);
        var lis = document.getElementsByTagName('li');
        var p = document.getElementsByTagName('p')[0];
        var img = document.getElementsByTagName('img')[0];
        console.log(lis);
        // 数据与li一一对应, 索引相同
        for (var i = 0; i < lis.length; i++) {
            // 自定义索引
            lis[i].index = i;
            // 添加点击事件
            lis[i].onclick = function(){
                // 获取数据--->需要索引
                console.log(this.index);
                console.log(arr[this.index]);
                console.log(arr[this.index].name, arr[this.index].src);
                // 更新页面  赋值地址和名字
                img.src = arr[this.index].src;
                p.innerHTML = arr[this.index].name;
            }
        }
    </script>
</body>

</html>

 

微信小程序开发中,要实现点击圆点切换图片的功能,通常会结合`swiper`组件和数组数据来操作。首先,你需要在页面中创建一个轮播图的`swiper`组件,并给每个圆点按钮添加对应的`bindtap`事件处理函数。 步骤如下: 1. **设置结构**: ```html <view class="swiper"> <swiper-view wx:for="{{imageList}}" current="{{currentIndex}}"> <image src="{{item.src}}" style="width: 100%; height: 100%;" /> </swiper-view> <!-- 圆点导航 --> <view class="dot-view" wx:for="{{dots}}">{{index + 1}}</view> </view> ``` 2. **数据绑定**: 在`json`文件中定义图片数组 `imageList` 和圆点数组 `dots`: ```json { "imageList": [ {"src": "img1.jpg"}, {"src": "img2.jpg"}, {"src": "img3.jpg"} ], "dots": [1, 2, 3] }, ``` 3. **JavaScript逻辑**: 在`.js`文件中,设置当前图片索引和监听圆点点击: ```javascript Page({ data: { currentIndex: 0, imageList: [], dots: [] }, onLoad() { // 初始化数据 this.setData({ imageList: ..., dots: ... }); }, onDotTap(index) { this.setData({ currentIndex: index - 1, // 因为索引从1开始,所以减1 }); } }) ``` 4. **样式美化**: 使用CSS调整圆点样式,使其看起来像按钮并且与当前选中状态区分。 ```css .dot-view{ display: flex; justify-content: space-between; width: 100%; } .dot-item{ width: 8px; height: 8px; border-radius: 50%; background-color: #ccc; margin-right: 5px; cursor: pointer; } .dot-item.active { background-color: red; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值