一个用原生JS造的轮播图插件

a native-js slider

一个无缝轮播图的小轮子 ( ?° ?? ?°)??

前言

自己弄这个轮子是来自之前vue做一个音乐播放器项目时,用到了一个第三方vue组件better-scroll,当时参考这个文档做轮播图的时候,发现slider-item真实渲染出来的多了两个节点,向作者提问了下,回答当传入 snap:{loop:true} 的时候,前后各 clone 一个节点,保证可以无缝循环轮播,那么多克隆这两个节点是怎么实现无无缝轮播图呢,查阅了相关原理,就做了下这个轮子。

在线演示

传送门

原理:

  1. 所谓的无缝就是利用了两个辅助节点,eg:
    5 1 2 3 4 5 1
    其中首尾5,1就是辅助节点,为了实现过渡,当真实的5节点滑动到下一节点1时,其实是滑到了辅助1节点,此时再瞬间将位置指向真正的1节点,因为是相同的节点,此时外界就看不到发生的变化。
  2. 利用了float和overflow,外界container设置成一张图片的大小,设置voerflow超出部分为hidden,第一个节点辅助节点5的left为0px,下一个就是真实的节点1为-600px(假设图片宽600px),后面依次推。通过控制容器的left值来实现轮播。(向右偏移left值越来越小)

功能

  1. 无缝轮播
  2. 自动播放,鼠标hover状态时停止自动播放,且浮现左右控制箭头,移开则消失。
  3. 焦点dot的状态随图片轮播亮起和熄灭。且可以点击dot来自由切换跳转到相应的图片。
  4. 轮播间隔时间和图片切换时间在代码里直接改相关时间常量即可。

在线demo 链接

有时间可以再用CSS3实现一遍

Github代码链接:传送门

原文地址:https://www.cnblogs.com/zhangmingzhao/p/8450264.html

时间: 2024-08-28 18:28:33

一个用原生JS造的轮播图插件的相关文章

原生JS实现简易轮播图

原生JS实现简易轮播图(渐变?) 最近做网页总是会用到轮播图,我就把之前写的轮播图单独拿出来吧,如果有...如果真的有人也需要也可以复制去用用啊..哈~.. window.onload = function() { var tab = 0; var loop_imgs = new Array("img/l1.jpg", "img/l2.jpg", "img/l3.jpg", "img/l4.jpg", "img/l5

原生 js 左右切换轮播图

使用方法: 可能很多人对轮播图感兴趣,下面奉上本人的 原生 js 轮播代码复制 js 到页面的最底部,样式在 css 里改,js 基本不用动,有什么不懂的可以 加本人 QQ172360937 咨询 或者留言都可以,这个是用 原生写的 轮播图,样式可以写自己喜欢的样式,什么都不用改,只改变样式就行,页面结构的id 要与js的相对应li随便加.li 随便加的意思就是说你可以加无数个图片.每个li 里装一个图片,或者是其他什么元素, <!doctype html> <html lang=&qu

原生js写简单轮播图方式1-从左向右滑动

轮播图就是让图片每隔几秒自动滑动,达到图片轮流播放的效果.轮播图从效果来说有滑动式的也有渐入式的,滑动式的轮播图就是图片从左向右滑入的效果,渐入式的轮播图就是图片根据透明度渐渐显示的效果,这里说的是实现第一种效果的方法. 原理 相同大小的图片并成一列,但只显示其中一张图片,其余的隐藏,通过修改left值来改变显示的图片.点击查看效果 html部分 nav为总容器,第一个ul列表#index为小圆点列表,鼠标覆盖哪个小圆点就显现第几张图片,on是一个给小圆点添加背景颜色属性的类:第二个ul列表#i

photoSlider-html5原生js移动开发轮播图-相册滑动插件

简单的移动端图片滑动切换浏览插件 分别引用css文件和js文件 如: <link rel="stylesheet" type="text/css" href="css/photoSlider.min.css" /> <script src="js/photoSlider.min.js" type="text/javascript" charset="utf-8">

原生js点击轮播图效果

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <script src="http://g.tbcdn.cn/mtb/lib-flexible/0.3.4/??flexible_css.js,flexible.js"></script> <title>原生js轮播效果</title&g

原生js实现的轮播图,易用+可多用

<!doctype html> <html> <head> <meta charset="utf-8"> <title>无标题文档</title> <style rel="stylesheet"> body { margin: 0; padding: 0 } .imgwall { position: relative; overflow: hidden; margin: 0 auto

原生js仿网易轮播图

<!-- HTML部分 --> <div id="wrap"> <div class="picBox"> <!-- 图片区域 --> <div id="pic"> <div><a href="#"><img src="imgs/1.jpg" alt=""/></a></div

封装一个简单的原生js焦点轮播图插件

轮播图实现的效果为,鼠标移入左右箭头会出现,可以点击切换图片,下面的小圆点会跟随,可以循环播放.本篇文章的主要目的是分享封装插件的思路. 轮播图的我一开始是写成非插件形式实现的效果,后来才改成了封装成插件的形式. 首先要明白轮播图的实现原理和基本布局,大概就是外面有一个容器包裹着(通常是div),容器设置宽高,以及overflow为hidden,超出宽高部分隐藏, 容器里面又包含着另一个容器,包裹着所有的图片,宽为所有图片的总宽度,ul的position为absolute,通过改变ul的left

用jQuery基于原生js封装的轮播

我发现轮播在很多网站里面都用到过,一个绚丽的轮播可以为网页增色不少,最近闲来无事,也用原生js封装了一个轮播,可能不像网上的插件那么炫,但是也有用心去做.主要用了闭包的思想.需要传递的参数有:图片地址的数组,图片宽度,上一页,下一页的id,图片列表即ul的id(这儿使用无序列表排列的图片),自动轮播间隔的时间.功能:实现了轮播的自动轮播,可以点击上一页,下一页进行切换. 下面是html中的代码,只需要把存放的容器写好,引入jquery即可: <!DOCTYPE html><html>