• 向左滑动删除一区域内容(移动端)


    <!doctype html>
    <html>
    <head>
        <meta charset="utf-8">
         <meta name="viewport" id="viewport" content="width=device-width, initial-scale=1">
        <title>左划出现删除按钮,右滑隐藏</title>
        <style type="text/css">
            * { margin: 0; padding: 0; }
            .line-wrapper { width: 100%; height: 144px; overflow: hidden; font-size: 28px; border-bottom: 1px solid #aaa; }
            .line-scroll-wrapper { white-space: nowrap; height: 144px; clear: both; }
            .btn_del { float: left; width: 132px; height: 144px; }
            .btn_del button { width: 100%; height: 100%; background: red; border: none; font-size: 24px; font-family: 'Microsoft Yahei'; color: #fff; }
            .line-normal-wrapper { display: inline-block; line-height: 100px; float: left; padding-top: 10px; padding-bottom: 10px; }
            .right_img { float: right; width: 120px; height: 120px; margin-right: 12px; }
            .right_img img { width: 120px; height: 120px; }
            .left_img { width: 100px; height: 124px; float: left; margin-left: 12px; }
            .left_img img { width: 92px; height: 92px; border-radius: 60px;margin-top: 16px }
            .left_content { float: left; overflow: hidden; }
            .con_text { float: left; margin-left: 10px; }
            .con_text1 { height: 28px; line-height: 28px; color: #4e4e4e; margin-top: 7px; }
            .con_text2 { height: 28px; line-height: 28px; overflow:hidden; text-overflow:ellipsis; color: #4e4e4e; margin-top: 11px; }
            .con_text3 { height: 28px; line-height: 28px; color: #999; margin-top: 11px; }
        </style>
    
    
    </head>
    <body>
    <div class="line-wrapper" id="1">
        <div class="line-scroll-wrapper">
            <div class="line-normal-wrapper">
                <div class="left_content">
                    <div class="left_img"><img src="http://images.cnblogs.com/cnblogs_com/heyiming/947284/t_1.jpg" /></div>
                    <div class="con_text">
                        <div class="con_text1">蜡笔小新</div>
                        <div class="con_text2">在同行的小伙伴中提到了你</div>
                        <div class="con_text3">1分钟前</div>
                    </div>
                </div>
                <div class="right_img"><img src="http://images.cnblogs.com/cnblogs_com/heyiming/947284/t_2.jpg"/></div>
            </div>
            <div class="btn_del" id="btn1"><button>删除</button></div>
        </div>
    </div>
    
    <div class="line-wrapper" id="2">
        <div class="line-scroll-wrapper">
            <div class="line-normal-wrapper">
                <div class="left_content">
                    <div class="left_img"><img src="http://images.cnblogs.com/cnblogs_com/heyiming/947284/t_3.jpg" /></div>
                    <div class="con_text">
                        <div class="con_text1">乔巴</div>
                        <div class="con_text2">你看不到我哦</div>
                        <div class="con_text3">1分钟前</div>
                    </div>
                </div>
                <div class="right_img"><img src="http://images.cnblogs.com/cnblogs_com/heyiming/947284/t_4.png"/></div>
            </div>
            <div class="btn_del" id="btn2"><button>删除</button></div>
        </div>
    </div>
    <div class="line-wrapper" id="3">
        <div class="line-scroll-wrapper">
            <div class="line-normal-wrapper">
                <div class="left_content">
                    <div class="left_img"><img src="http://images.cnblogs.com/cnblogs_com/heyiming/947284/t_5.jpg" /></div>
                    <div class="con_text">
                        <div class="con_text1">渐行渐远</div>
                        <div class="con_text2">回忆里想起模糊的小时候,云朵漂浮在蓝蓝的天空,那时的你说,要和我手牵手,一起走到时间的尽头</div>
                        <div class="con_text3">1分钟前</div>
                    </div>
                </div>
                <div class="right_img"><img src="http://images.cnblogs.com/cnblogs_com/heyiming/947284/t_6.jpg"/></div>
            </div>
            <div class="btn_del" id="btn3"><button>删除</button></div>
        </div>
    </div>
    <div class="line-wrapper" id="4">
        <div class="line-scroll-wrapper">
            <div class="line-normal-wrapper">
                <div class="left_content">
                    <div class="left_img"><img src="http://images.cnblogs.com/cnblogs_com/heyiming/947284/t_7.jpg" /></div>
                    <div class="con_text">
                        <div class="con_text1">小黄人</div>
                        <div class="con_text2">哈哈哈哈哈……暑假来看小黄人电影哦~哈哈哈……</div>
                        <div class="con_text3">1分钟前</div>
                    </div>
                </div>
                <div class="right_img"><img src="http://images.cnblogs.com/cnblogs_com/heyiming/947284/t_8.jpg"/></div>
            </div>
            <div class="btn_del" id="btn4"><button>删除</button></div>
        </div>
    </div>
    </body>
    </html>
    <script type="text/javascript" src="jquery-1.8.0.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function(e) {
            // 设定每一行的宽度=屏幕宽度+按钮宽度
            $(".line-scroll-wrapper").width($(".line-wrapper").width() + $(".btn_del").width());
            // 设定常规信息区域宽度=屏幕宽度
            $(".line-normal-wrapper").width($(".line-wrapper").width());
            // 设定文字部分宽度(为了实现文字过长时在末尾显示...)
            $(".con_text2").width($(".line-normal-wrapper").width() - 280);
    
            // 获取所有行,对每一行设置监听
            var lines = $(".line-normal-wrapper");
            var len = lines.length;
            var lastX, lastXForMobile;
    
            // 用于记录被按下的对象
            var pressedObj;  // 当前左滑的对象
            var lastLeftObj; // 上一个左滑的对象
    
            // 用于记录按下的点
            var start;
    
            // 网页在移动端运行时的监听
            for (var i = 0; i < len; ++i) {
                lines[i].addEventListener('touchstart', function(e){
                    lastXForMobile = e.changedTouches[0].pageX;
                    pressedObj = this; // 记录被按下的对象
    
                    // 记录开始按下时的点
                    var touches = event.touches[0];
                    start = {
                        x: touches.pageX, // 横坐标
                        y: touches.pageY  // 纵坐标
                    };
                });
    
                lines[i].addEventListener('touchmove',function(e){
                    // 计算划动过程中x和y的变化量
                    var touches = event.touches[0];
                    delta = {
                        x: touches.pageX - start.x,
                        y: touches.pageY - start.y
                    };
    
                    // 横向位移大于纵向位移,阻止纵向滚动
                    if (Math.abs(delta.x) > Math.abs(delta.y)) {
                        event.preventDefault();
                    }
                });
    
                lines[i].addEventListener('touchend', function(e){
                    if (lastLeftObj && pressedObj != lastLeftObj) { // 点击除当前左滑对象之外的任意其他位置
                        $(lastLeftObj).animate({marginLeft:"0"}, 500); // 右滑
                        lastLeftObj = null; // 清空上一个左滑的对象
                    }
                    var diffX = e.changedTouches[0].pageX - lastXForMobile;
                    if (diffX < -150) {
                        $(pressedObj).animate({marginLeft:"-132px"}, 500); // 左滑
                        lastLeftObj && lastLeftObj != pressedObj &&
                        $(lastLeftObj).animate({marginLeft:"0"}, 500); // 已经左滑状态的按钮右滑
                        lastLeftObj = pressedObj; // 记录上一个左滑的对象
                    } else if (diffX > 150) {
                        if (pressedObj == lastLeftObj) {
                            $(pressedObj).animate({marginLeft:"0"}, 500); // 右滑
                            lastLeftObj = null; // 清空上一个左滑的对象
                        }
                    }
                });
            }
    
            // 网页在PC浏览器中运行时的监听
            for (var i = 0; i < len; ++i) {
                $(lines[i]).bind('mousedown', function(e){
                    lastX = e.clientX;
                    pressedObj = this; // 记录被按下的对象
                });
    
                $(lines[i]).bind('mouseup', function(e){
                    if (lastLeftObj && pressedObj != lastLeftObj) { // 点击除当前左滑对象之外的任意其他位置
                        $(lastLeftObj).animate({marginLeft:"0"}, 500); // 右滑
                        lastLeftObj = null; // 清空上一个左滑的对象
                    }
                    var diffX = e.clientX - lastX;
                    if (diffX < -150) {
                        $(pressedObj).animate({marginLeft:"-132px"}, 500); // 左滑
                        lastLeftObj && lastLeftObj != pressedObj &&
                        $(lastLeftObj).animate({marginLeft:"0"}, 500); // 已经左滑状态的按钮右滑
                        lastLeftObj = pressedObj; // 记录上一个左滑的对象
                    } else if (diffX > 150) {
                        if (pressedObj == lastLeftObj) {
                            $(pressedObj).animate({marginLeft:"0"}, 500); // 右滑
                            lastLeftObj = null; // 清空上一个左滑的对象
                        }
                    }
                });
            }
        });
        $(document).ready(function(){
            $("#btn1").click(function(){
                $("#1").remove();
            });
            $("#btn2").click(function(){
                $("#2").remove();
            });
            $("#btn3").click(function(){
                $("#3").remove();
            });
            $("#btn4").click(function(){
                $("#4").remove();
            });
        });
    </script>

    备用可研究代码:

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" id="viewport" content="width=device-width, initial-scale=1">
        <title>html5向左滑动删除特效</title>
        <style>
            * {
                padding: 0;
                margin: 0;
                list-style: none;
            }
    
            header {
                background: #f7483b;
                border-bottom: 1px solid #ccc
            }
    
            header h2 {
                text-align: center;
                line-height: 54px;
                font-size: 16px;
                color: #fff
            }
    
            .list-ul {
                overflow: hidden
            }
    
            .list-li {
                line-height: 60px;
                border-bottom: 1px solid #fcfcfc;
                position: relative;
                padding: 0 12px;
                color: #666;
                background: #f2f2f2;
                -webkit-transform: translateX(0px);
            }
    
            .btn {
                position: absolute;
                top: 0;
                right: -80px;
                text-align: center;
                background: #ffcb20;
                color: #fff;
                width: 80px
            }
        </style>
        <script>
            /*
             * 描述:html5苹果手机向左滑动删除特效
             */
            window.addEventListener('load', function() {
                var initX; //触摸位置
                var moveX; //滑动时的位置
                var X = 0; //移动距离
                var objX = 0; //目标对象位置
                window.addEventListener('touchstart', function(event) {
                    event.preventDefault();
                    var obj = event.target.parentNode;
                    if (obj.className == "list-li") {
                        initX = event.targetTouches[0].pageX;
                        objX = (obj.style.WebkitTransform.replace(/translateX(/g, "").replace(/px)/g, "")) * 1;
                    }
                    if (objX == 0) {
                        window.addEventListener('touchmove', function(event) {
                            event.preventDefault();
                            var obj = event.target.parentNode;
                            if (obj.className == "list-li") {
                                moveX = event.targetTouches[0].pageX;
                                X = moveX - initX;
                                if (X >= 0) {
                                    obj.style.WebkitTransform = "translateX(" + 0 + "px)";
                                } else if (X < 0) {
                                    var l = Math.abs(X);
                                    obj.style.WebkitTransform = "translateX(" + -l + "px)";
                                    if (l > 80) {
                                        l = 80;
                                        obj.style.WebkitTransform = "translateX(" + -l + "px)";
                                    }
                                }
                            }
                        });
                    } else if (objX < 0) {
                        window.addEventListener('touchmove', function(event) {
                            event.preventDefault();
                            var obj = event.target.parentNode;
                            if (obj.className == "list-li") {
                                moveX = event.targetTouches[0].pageX;
                                X = moveX - initX;
                                if (X >= 0) {
                                    var r = -80 + Math.abs(X);
                                    obj.style.WebkitTransform = "translateX(" + r + "px)";
                                    if (r > 0) {
                                        r = 0;
                                        obj.style.WebkitTransform = "translateX(" + r + "px)";
                                    }
                                } else { //向左滑动
                                    obj.style.WebkitTransform = "translateX(" + -80 + "px)";
                                }
                            }
                        });
                    }
    
                })
                window.addEventListener('touchend', function(event) {
                    event.preventDefault();
                    var obj = event.target.parentNode;
                    if (obj.className == "list-li") {
                        objX = (obj.style.WebkitTransform.replace(/translateX(/g, "").replace(/px)/g, "")) * 1;
                        if (objX > -40) {
                            obj.style.WebkitTransform = "translateX(" + 0 + "px)";
                            objX = 0;
                        } else {
                            obj.style.WebkitTransform = "translateX(" + -80 + "px)";
                            objX = -80;
                        }
                    }
                })
            })
        </script>
    </head>
    
    <body>
    <header>
        <h2>消息列表</h2>
    </header>
    <section class="list">
        <ul class="list-ul">
            <li id="li" class="list-li">
                <div class="con">
                    测试内容第一条
                </div>
                <div class="btn">删除</div>
            </li>
            <li class="list-li">
                <div class="con">
                    测试内容第二条
                </div>
                <div class="btn">删除</div>
            </li>
        </ul>
    </section>
    </body>
    
    </html>
  • 相关阅读:
    关于action的使用在firefox报错的问题
    用rspec执行自动化测试用例
    webdriver实现简单的窗口切换
    一个小测试总结
    在Notepad++下运行ruby代码
    webdriver入门之环境准备
    我也来谈谈小米——《参与感》观后感
    测试发展生涯的困惑
    小谈关于互联网产品的测试
    转:API 接口渗透测试
  • 原文地址:https://www.cnblogs.com/heyiming/p/6491148.html
Copyright © 2020-2023  润新知