zoukankan      html  css  js  c++  java
  • 知乎网首页一个延时交互的小思路

    知乎首页有个交互还蛮有意思,当用户在左侧头像区选择某个头像的时候,右侧内容区域会依据鼠标在头像所留经的时间来决定是否显示所停留头像的对应内容:

    今天简单说下用JQ完成这个交互的思路。先照例写下HTML/CSS,整俩div分别作为头像元素和内容区域元素:

      <div class="touxiang">这里是头像</div>
      <div class="neirong">这里是内容区域</div>
    <style type="text/css">
    body{
        margin:50px;
        }
    .touxiang{
        border:1px solid #E5D1A1; text-align:center; width:150px; height:150px; background:#FFFDD2; float:left;
        }
    .neirong{
        width:300px;height:500px; margin-left:30px;border:1px solid #E5D1A1;background:#fff;float:left;
        }
    </style>

    接下来是JQ部分:

     1 function changetext(){
     2     $(".neirong").text('hahaha');
     3 }
     4 
     5 $(function(){
     6 $(".touxiang").hover(function(){
     7  timeout_name = setTimeout("changetext()",3000);
     8       },function(){
     9       clearTimeout(timeout_name) ;
    10       })
    11   })

    执行可看到,我们鼠标移到头像上3秒后,则内容区域内容变为“hahaha”,若在3秒内把鼠标移出头像,则内容区域内容不变。

    这种效果说白了是利用.hover()来定义“鼠标经过”和“鼠标离开”头像div时所执行的事件。

    如上述代码,若鼠标移到头像div上,则利用setTimeout函数来延时3秒调用changetext()函数,从而让内容区域在3秒后改变起内容;
    而当鼠标离开了头像div,则利用clearTimeout函数清空对应的延时操作。

    注意setTimeout所调用的函数作用域必须是全局性的,所以对changetext()函数的声明定义需要写在$(function(){...})外部。

    方法还是比较简单的,这里只写了一个头像做示范,像知乎首页多头像效果也不外乎连接数据库,由于数据库里头像ID字段和内容区域内容的TXID字段是关联的,如数据库ID字段为“101”的头像,其div的id可设为id="tx101",并将其对应区域内容从数据库提取且赋值给变量nr101;再绑定hover事件让鼠标经过$("#tx101")的时候内容区域.text(nr101)。

  • 相关阅读:
    典型页面布局
    网站表单输入框去除浏览器默认样式
    时间格式问题
    经典算法
    css自动换行
    git pull报“unable to update local ref”解决方案
    MYSQL数据插入和更新的语法
    正则表达式去除连续重复的字符
    linux保存住github的账号和密码
    php动态获取常量
  • 原文地址:https://www.cnblogs.com/vajoy/p/3651417.html
Copyright © 2011-2022 走看看