美文网首页
前端随笔-3

前端随笔-3

作者: 白小菜的路 | 来源:发表于2017-11-27 13:12 被阅读0次
  1. js jq 中获得data*属性(https://segmentfault.com/a/1190000005770912)

  2. 显示keyCode

image.png
  1. 阻止右键
document.oncontextmenu  = function(){
    return false;
}
  1. 获取目标的当位置(http://shanmao.me/web/js/pagex-clientx-offsetx-layerx-de-qu-bie)
    x:设置或者是得到鼠标相对于目标事件的父元素的外边界在x坐标上的位置。
    clientX:相对于客户区域的x坐标位置,不包括滚动条,就是正文区域。
    offsetx:设置或者是得到鼠标相对于目标事件的父元素的内边界在x坐标上的位置。
    screenX:相对于用户屏幕
    PageY=clientY+scrollTop-clientTop;(只讨论Y轴,X轴同理,下同)
    页面上的位置=可视区域位置+页面滚动条切去高度-自身border高度,还是直接上图比较清楚
    (http://blog.csdn.net/xuantian868/article/details/3116442)
  2. 水平垂直居中(https://www.w3cplus.com/css/vertically-center-content-with-css)
  3. jQuery中position()与offset()区别
    position()获取相对于它最近的具有相对位置(position:relative或position:absolute)的父级元素的距离,如果找不到这样的元素,则返回相对于浏览器的距离。
    offset()始终返回相对于浏览器文档的距离,它会忽略外层元素。
    下边看个简单的例子,这里外层的div元素(position:relative)仅一个:
<div id = "outer" style="width:200px;position:relative;left:100px;">
  <div id="inner" style="position:absolute;left:50px;top:60px;"></div>
</div>
//获取相对于最近的父级(position:relative或position:absolute)的位置
var vposition = $("#inner").position();
alert(vposition.left);//输出:50
alert(vposition.top);//输出:60
var voffset = $("#inner").offset();
alert(voffset.left);//输出:$("#outer").offset().left+50
alert(voffset.top);//输出:$("#outer").offset().top+60

在不同浏览器中,offset()得到的相对于浏览器的位置不同,相信你看了上边相应的注释,已经掌握了position()同offset()方法的区别。

  1. Li 滚动
//html
<ul id="dpdataul">
        <li>hhhaha1</li>
        <li>hhhah2a2</li>
        <li>hhhaha3</li>
        <li>hhhaha4</li>
        <li>hhhaha5</li>
        <li>hhhaha6</li>
        <li>hhhaha7</li>
        <li>hhhaha8</li>
        <li>hhhaha9</li>
        <li>hhhaha10</li>
</ul>
<span id='up'>up</span>
 <span id='down'>down</span>
//css
ul{
  height: 30px;
  width: 300px;
  overflow: hidden;
}
ul li{
  height: 30px;
  line-height: 30px;
}
//js
$("#dpdataul").scrollTop(150);
$("#up").click(function(){
      var _this = this;
    $("#up").click(function(){
      binddpdatascroll(30);
      return false;
    });
    $("#down").click(function(){
      binddpdatascroll(-30);
      return false;
    });
})
function binddpdatascroll(n){ //大盘滚动
    var dpdataul = $("#dpdataul");
    var nowstop = dpdataul.scrollTop();
    dpdataul.animate({
      scrollTop:nowstop + n
    }, 200, function (){
      nowstop2 = dpdataul.scrollTop();
      if( nowstop2 <= 0 ){
        dpdataul.scrollTop(150);
        nowstop = 150;
      }
      if( nowstop2 > 240 ){
        dpdataul.scrollTop(120);
        nowstop = 120;
      }
    } );
    return false;
  }
  1. 同源策略 jsonp ajax
    由于同源策略的限制,XmlHttpRequest只允许请求当前源(域名、协议、端口)的资源,为了实现跨域请求,可以通过script标签实现跨域请求,然后在服务端输出JSON数据并执行回调函数,从而解决了跨域的数据请求,这就是jsonp的核心。
    jsonp原理:
  • 首先在客户端注册一个callback, 然后把callback的名字传给服务器。
  • 服务器先生成 json 数据。 然后以 javascript 语法的方式,生成一个function , function 名字就是传递上来的参数 jsonp. 最后将 json 数据直接以入参的方式,放置到 function 中,这样就生成了一段 js 语法的文档,返回给客户端。
  • 客户端浏览器,解析script标签,并执行返回的 javascript 文档,此时数据作为参数,传入到了客户端预先定义好的 callback 函数里.(动态执行回调函数)
    image.png
    9 . 倒计时
  1. js中设置元素class的三种方法小结

相关文章

网友评论

      本文标题:前端随笔-3

      本文链接:https://www.haomeiwen.com/subject/opvrbxtx.html