无缝切换在网站的很多地方都有涉及,比如轮播图等。

基本思路:

1)将可视窗当前的元素复制,依次添加为ul中的子元素

2)改变ul整体的left取值(负的窗口值),动画缓动至想要的位置

3)将原视窗(已被复制)的各个li删除

4)将ul的left取值重新调整为0

实现的html代码:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>测试页面</title>
    <style>
        *{margin:;padding: ;box-sizing:border-box;}
        div{width:480px;height:150px;border:5px solid #; margin-left:300px;   position: relative;}
        ul{  overflow: hidden; position: absolute; left: ;}
        ul li{width:150px; height:150px; background:blue;float:left;margin-right:10px;list-style: none; color:white; font-size: 34px;text-align: center;}
    </style>
</head>

<body>
    <div id="div1">
        <ul>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
        </ul>
    </div>
    <button id="btn">切换</button>

    <script src="./commonJs/tool.js"></script>
    <script src="./commonJs/base.js"></script>
    <script src="./usualEffects/js/mySwitch.js"></script>

</body>

</html>

无缝切换html代码

js代码:

$(function() {
    ];
    var aLis = document.getElementsByTagName('li');
    ].offsetWidth + ;
    ;
    var showWidth = showNum * oneSize;
    var btn = document.getElementById('btn');
    var flag = true;

    function setUlWidth() {
        var sumWidth = aLis.length * oneSize;
        console.log('sumWidth:' + sumWidth);
        oUl.style.width = sumWidth + 'px';
    }
    setUlWidth();
    btn.addEventListener('click', function() {
        //为了防止动画累加,设置flag参数,只有当上次动画结束之后,才可能开始下一次动画
        if (flag) {
            flag=false;
            ; i < showNum; i++) {
                //将前面showNum个元素复制,粘贴到列表后面
                var cloneNode = aLis[i].cloneNode(true);
                oUl.appendChild(cloneNode);
                setUlWidth();
            }
            $(oUl).animate({ 'left': -showWidth + 'px' }, function() {
                //动画结束之后的回调
                //删除添加的元素
                ; k < showNum; k++) {
                    ]);
                }
                //将ul的left值复原
                ;
                flag=true;
            });
        }
    }, false);

});

无缝切换js代码

javascript实例学习之八——无缝切换效果的更多相关文章

  1. JavaScript实现多栏目切换效果

    效果: 代码: <!doctype html> <html> <head> <meta http-equiv="Content-Type" ...

  2. JavaScript 实现 标签页 切换效果

    JavaScript 实现 标签页 切换效果 版权声明:未经授权,严禁分享! 构建主体界面 HTML 代码 <h1>实现标签页的切换效果</h1> <ul id=&quo ...

  3. javascript马赛克遮罩图片切换效果:XMosaic.js(转)

    新鲜出炉的javascript图片切换特效,实现的是马赛克遮罩切换.在flash里,好实现遮罩动画很简单,不过JS实现起来就有些困难了. XMosaic.js,与XScroll.js和XScroll2 ...

  4. 二、JavaScript语言--JS基础--JavaScript进阶篇--选项卡切换效果

    利用JavaScript知识,实现选项卡切换的效果. 效果图: 文字素材: 房产: 275万购昌平邻铁三居 总价20万买一居     200万内购五环三居 140万安家东三环     北京首现零首付楼 ...

  5. javascript 多图无缝切换

    思路只要是ul移动前,首先将当前显示的li克隆岛ul最后,当每次运动执行完毕后,再将前面的li删除,如此循环. <!DOCTYPE html> <html> <head& ...

  6. 使用javascript实现图片上下切换效果并且实现顺序循环播放

    <!doctype html><html lang="en"><head> <meta charset="UTF-8" ...

  7. 无JavaScript实现选项卡轮转切换效果

    CSS:   .box{width:200px; height:100px; border:1px solid #ddd; overflow:hidden;}.list{width:200px; he ...

  8. javascript小例子:實現四方向文本无缝滚动效果

    实现一个文本无缝滚动的效果: <!DOCTYPE html> <!--[if lt IE 7 ]> <html lang="zh-CN" class= ...

  9. [前端] html+css+javascript 实现选项卡切换效果

    用html+css+js实现选项卡切换效果使用之前学过的综合知识,实现一个新闻门户网站上的常见选项卡效果: 文字素材:房产: 275万购昌平邻铁三居 总价20万买一居 200万内购五环三居 140万安 ...

随机推荐

  1. POJ 1088 滑雪(记忆化搜索)

    滑雪 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 92384   Accepted: 34948 Description ...

  2. 【转】SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)

    原文地址:http://blog.csdn.net/zhshulin/article/details/37956105 使用SSM(Spring.SpringMVC和Mybatis)已经有三个多月了, ...

  3. ThinkPHP 模板截取字符串 【转载】

    对于英文字符可使用如下形式(模板中): {$vo.title|substr=,} 如果是中文字符thinkphp提供了msubstr,用法如下: function msubstr($str, $sta ...

  4. cURL 学习笔记与总结(4)使用 cURL 从 ftp 上下载文件与上传文件到 ftp

    下载: <?php $curlobj = curl_init(); curl_setopt($curlobj, CURLOPT_URL, "ftp://192.***.*.***/文件 ...

  5. Apache服务器代理与缓存

    Apache服务器代理与缓存 1.代理  正向代理:             反向代理:   mod_proxy模块 apache实现代理和网关的关键模块.加载mod_proxy模块:LoadModu ...

  6. 【转载】MySQL性能优化的最佳20+条经验

    今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情.当我们去设计数据库表结构,对操作数据 ...

  7. 【转载】wireshark抓包

    两种过滤器 捕捉过滤器:用于决定将什么样的信息记录在捕捉结果中.需要在开始捕捉前设置显示过滤器:在捕捉结果中进行详细查找.他们可以在得到捕捉结果后随意修改 1.捕捉过滤器   语法实例: tcp ds ...

  8. Map的数据结构

    一:Map<String,Map<String,Map<String,List<A>>>>

  9. C++ 栈和队列

    使用标准库的栈和队列时,先包含相关的头文件 #include<stack> #include<queue> 定义栈如下: stack<int> stk; 定义队列如 ...

  10. 打造 PHP版本 1password

    以前注册很多网站密码都使用简单密码,但是由于今年频繁曝出密码不安全问题,所以要使用更加复杂的密码.但是好多个账号,密码也不能设置成一样的,防止一个被盗全部不安全了,记密码就成了意见很头疼的事情. 在手 ...