马黑黑 发表于 2024-12-11 18:43

一个简单的图片轮播

<h2>代码:</h2>
<div id="hEdiv"><pre id="hEpre">
&lt;style&gt;
        /* 应根据需要设置好图片的父容器尺寸,所准备的图片宽高比例应大致一致 */
        #tz { margin: auto; width: 460px; height: 640px; }
        #mypic { width: 100%; height: 100%; }
&lt;/style&gt;

&lt;div id="tz"&gt;
        &lt;img id="mypic" src="https://n.sinaimg.cn/sinakd20118/500/w2000h2500/20200618/4de3-ivffpcs2449712.jpg" /&gt;
&lt;/div&gt;
&lt;p&gt;&lt;button id="btnCtrl" type="button" value="controls"&gt;播放图片&lt;/button&gt;&lt;/p&gt;

&lt;script&gt;
var picIdx = 0, picPlay = true,pTimer = null; //图片索引、是否播放、计时器标识

var picAr = [
        '图片1',
        '图片2',
        '图片3',
        '图片4',
];

var showPics = (pics, time = 5000) =&gt; {
        picIdx = (picIdx + 1) % pics.length;
        mypic.src = pics;
        pTimer = setTimeout( () =&gt; {
                showPics(pics, time);
        }, time);
};

//按钮控制图片只是为了演示,实际使用时可以考虑与其他布尔变量联动
btnCtrl.onclick = () =&gt; {
        if(picPlay) {
                showPics(picAr, 3000);
                btnCtrl.textContent = '暂停播放';
        }else{
                clearTimeout(pTimer);
                btnCtrl.textContent = '播放图片';
        }
        picPlay = !picPlay;
};
&lt;/script&gt;
</pre></div>

<script type="module">
import hlight from 'https://638183.freep.cn/638183/web/mod/helight.js';
hlight.hl(hEdiv, hEpre);
</script>

马黑黑 发表于 2024-12-11 18:44

<h2>演示(图片来源于网络,不保证长期有效性):</h2>
<style>
        #tz { margin: auto; width: 460px; height: 640px; }
        #mypic { width: 100%; height: 100%; }
</style>

<div id="tz">
        <img id="mypic" src="https://n.sinaimg.cn/sinakd20118/500/w2000h2500/20200618/4de3-ivffpcs2449712.jpg" />
</div>
<p style="text-align: center"><br><button id="btnCtrl" type="button" value="controls">播放图片</button></p>

<script>
var picIdx = 0, picPlay = true,pTimer = null; //图片索引、是否播放、计时器标识

var picAr = [
        'https://n.sinaimg.cn/sinakd20118/500/w2000h2500/20200618/4de3-ivffpcs2449712.jpg',
        'https://ts1.cn.mm.bing.net/th/id/R-C.1d9d38209568a97cd268807b5df4c9f0?rik=ZpqTGRiguiJhqA&riu=http%3a%2f%2f1844.img.pp.sohu.com.cn%2fimages%2fblog%2f2009%2f6%2f29%2f10%2f3%2f122d6678015g213.jpg&ehk=m4%2fqvE9%2fBDfCoXDTLbon2odGup7uvoTQymrZX%2bx0IhU%3d&risl=&pid=ImgRaw&r=0',
        'https://img.pconline.com.cn/images/upload/upc/tx/photoblog/1202/10/c3/10384945_10384945_1328860163765_mthumb.jpg',
        'https://ts1.cn.mm.bing.net/th/id/R-C.bb7f8583f25ac280f2f61de21dc81fc4?rik=mWDFDFwMhSGJ2A&riu=http%3a%2f%2fn.sinaimg.cn%2fsinacn10116%2f104%2fw1024h1480%2f20190813%2fe552-icapxpi0739776.jpg&ehk=6q1AEGfdaKhr8OJ19GDjtqU3%2bn6AxRjyvp7mCnaggrc%3d&risl=&pid=ImgRaw&r=0'
];

var showPics = (pics, time = 5000) => {
        picIdx = (picIdx + 1) % pics.length;
        mypic.src = pics;
        pTimer = setTimeout( () => {
                showPics(pics, time);
        }, time);
};

btnCtrl.onclick = () => {
        if(picPlay) {
                showPics(picAr, 3000);
                btnCtrl.textContent = '暂停播放';
        }else{
                clearTimeout(pTimer);
                btnCtrl.textContent = '播放图片';
        }
        picPlay = !picPlay;
};
</script>

花飞飞 发表于 2024-12-11 19:22

图片养眼~~四位小仙女~~可爱小公举~~赏心悦目。。{:4_173:}

这个轮流播放效果,还真是简单又好用。
有按纽控制挺好,随时可停,还可以改变播放时每张显示的时间。。

花飞飞 发表于 2024-12-11 19:24

看了下图片代码,第7行的那张地址最后居然有 个;r=0,震惊了,这个图片地址还真是无所不容。。。{:4_173:}

马黑黑 发表于 2024-12-11 19:39

花飞飞 发表于 2024-12-11 19:22
图片养眼~~四位小仙女~~可爱小公举~~赏心悦目。。

这个轮流播放效果,还真是简单又好用。


时间由自己在调用 showPics 函数的时候制定

花飞飞 发表于 2024-12-11 19:43

马黑黑 发表于 2024-12-11 19:39
时间由自己在调用 showPics 函数的时候制定

嗯哪,调整33行,快慢就可以控制了。
我在想它怎么整到贴子里。
昨天看到一个作品,两张轮播,切得有点慢。。等很久才看到另一张。。{:4_170:}

马黑黑 发表于 2024-12-11 19:44

花飞飞 发表于 2024-12-11 19:43
嗯哪,调整33行,快慢就可以控制了。
我在想它怎么整到贴子里。
昨天看到一个作品,两张轮播,切得有点 ...

时间是可以定制的

花飞飞 发表于 2024-12-11 19:53

马黑黑 发表于 2024-12-11 19:44
时间是可以定制的

回头我瞅瞅那个代码
说到做贴,这两三个月算是瞎了。。事儿太多。。{:4_173:}

红影 发表于 2024-12-11 20:11

“按钮控制图片只是为了演示,实际使用时可以考虑与其他布尔变量联动”
也就是可以用小播来代替这个按钮呗{:4_204:}

红影 发表于 2024-12-11 20:22

很漂亮的图片轮播代码{:4_187:}

小辣椒 发表于 2024-12-11 20:46

图片转换效果很漂亮{:4_199:}

马黑黑 发表于 2024-12-11 21:07

红影 发表于 2024-12-11 20:11
“按钮控制图片只是为了演示,实际使用时可以考虑与其他布尔变量联动”
也就是可以用小播来代替这个按钮呗 ...

完全可以

马黑黑 发表于 2024-12-11 21:07

小辣椒 发表于 2024-12-11 20:46
图片转换效果很漂亮

晚上嚎

小辣椒 发表于 2024-12-11 21:08

马黑黑 发表于 2024-12-11 21:07
晚上嚎

黑黑这个图片转换可以加一点淡进淡出的效果吗?

马黑黑 发表于 2024-12-11 21:09

小辣椒 发表于 2024-12-11 21:08
黑黑这个图片转换可以加一点淡进淡出的效果吗?

相加自己加就是了

马黑黑 发表于 2024-12-11 21:10

花飞飞 发表于 2024-12-11 19:53
回头我瞅瞅那个代码
说到做贴,这两三个月算是瞎了。。事儿太多。。

事儿多做帖的事情可以搁一下

花飞飞 发表于 2024-12-11 21:30

马黑黑 发表于 2024-12-11 21:10
事儿多做帖的事情可以搁一下

还有就是无意间看到另一个大咖的作品,惊为天人。。
开了一张对比着自己做的,感觉自己差太多。
也花了一些时间,但出不了图。。
都整半拉搁置着。。{:4_173:}

马黑黑 发表于 2024-12-11 22:48

花飞飞 发表于 2024-12-11 21:30
还有就是无意间看到另一个大咖的作品,惊为天人。。
开了一张对比着自己做的,感觉自己差太多。
也花了 ...

基本功齐全上去了,然后才能实现创意

红影 发表于 2024-12-11 22:56

马黑黑 发表于 2024-12-11 21:07
完全可以

嗯嗯,知道了{:4_187:}

梦江南 发表于 2024-12-12 10:06

漂亮的图片轮换,老师辛苦了!
页: [1] 2
查看完整版本: 一个简单的图片轮播