作者: admin

  • input文字文本提示placeholder.js/jquery.placeholder.js

    input 文字 文本 提示 兼容IE6/7/8

    input_text

    基于jquery下开发

    input_text2

    http://pan.baidu.com/s/18RFZo

    http://www.jb51.net/article/60599.htm

     

    类似同效果的插件还有jquery.placeholder.js,同样也是兼容IE6/7/8。

    input标签同样要添加placeholder属性

    js部分调用方式如下:

    $('input, textarea').placeholder({customClass:'my-placeholder'});
    my-placeholder为样式名
    .my-placeholder { color: red; }

    input_text3

    http://pan.baidu.com/s/1CVyf8

     

  • jquery 相册 弹窗 灯箱效果fancyBox

    jquery 相册 弹窗 灯箱效果fancyBox,兼容IE6/7/8

    dengxiang123

    fancyBox-master

    http://pan.baidu.com/s/1jGzNMBk

    本地下载

     

    ——————–以下fancyBox v3.5.2———————-

    同时适用于pc、移动端且支持手势滑动

    简单案例:demo

    fancyBox v3.5.2

    https://fancyapps.com/fancybox/3/

  • artDialog.js弹窗效果

    个性化弹窗效果artDialog.js,可用于项目中使用,可兼容IE6以上版本

    artDialog

    http://demo.jb51.net/js/2011/artDialog/_doc/API.html

  • js自定义loading样式最低兼容IE6

    一般显示一个正在加载的页面提示我们都使用gif,现在完成用js可以自定义一个loading图案,而且兼容性极好兼容IE6/7/8。

     

    <script type="text/javascript" src="js/spin.js"></script>
    <script>
    var opts = {
     lines: 13, // 共有几条线组成
     length: 7, // 每条线的长度
     width: 4, // 每条线的粗细
     radius: 10, // 内圈的大小
     corners: 1, // 圆角的程度
     rotate: 0, // 整体的角度(因为是个环形的,所以角度变不变其实都差不多)
     color: '#fff', // 颜色 #rgb 或 #rrggbb
     speed: 1, // 速度:每秒的圈数
     trail: 60, // 高亮尾巴的长度
     shadow: false, // 是否要阴影
     hwaccel: false, // 是否用硬件加速
     className: 'spinner', // class的名字
     zIndex: 7, // z-index的值 2e9(默认为2000000000)
     top: '50%', // 样式中的top的值(以像素为单位,写法同css)
     left: '50%' // 样式中的left的值(以像素为单位,写法同css)
    };
    var target = document.getElementById('foo');
    var spinner = new Spinner(opts);
    spinner.spin(target); //显示加载
    spinner.spin(); //隐藏加载

    *代码要先放在DOM元素后面

    网上在线调试:http://fgnass.github.io/spin.js/

  • jquery ajax 跨域实例

    跨域案例下载:https://sdeno.com/?p=4815

     

    先看下jsonp原理

     

    例子:

    http://www.weather.com.cn/data/cityinfo/101200101.html

    天气预报提供对外接口,供各大网站获取其数据,属于跨域问题。

    由于提供的接口本身没有回调函数只是简单的一段字符串,我们不能直接使用前端技术获取到数据,所以要配合php将接口进行简单的处理。

    1,服务器设置

    callback1

    <?php 
     header("content-type: text/html"); 
     $url = 'http://www.weather.com.cn/data/cityinfo/101200101.html'; //接口没有提供回调函数所以只能自己写回调 
     $data = file_get_contents($url); 
     $str='nini'.'('.$data.')'; //将数据放入到函数值中 
     //或者 $str=$_POST['wowo'].'('.$data.')';
     echo $str;
    ?>
    

    2,前端设置

    $.ajax({
      type:'post', //不声明默认是get
      url:'http://127.0.0.1/2.php', //需要跨域请求的地址
      dataType:"jsonp", //必须是jsonp 才有回调函数返回
      jsonp:"wowo", //自定义回调函数名,如果没定义默认名为 callback
      jsonpCallback:"nini", //自定义回调函数值,如果没有定义将会是随机生成
      error: function(){
        alert("ERROR!")
      },
      success: function(msg){
       alert(msg.weatherinfo.city);
       }
     });

    返回来的msg参数就是封装好的接口对象,这样就能实现跨域访问到其他网站的数据。

     

    —————————————-js jquery 跨域 推荐看以下部分——————————————————–

    以下环境讲解,是在跨域情况下

    客户端:

    $('button').click(function(){
      $.ajax({
        type:'POST', //虽然设置了post,跨域时候服务器端才是以get方式接收
        url:"http://localhost/server.php", //虽然存在跨域,服务器端还是能接受到客户端发送来的数据,但是客户端接受不到服务器端返回的数据,被浏览器挡住了
        data:{user:'root',pass:'187'}, //这里是客户端要发送给服务器的数据,也就是服务器要接受的数据,这些数据不管存不存在跨域情况,服务器都能接受的到用$_GET[]方式接受
        dataType:"jsonp", //跨域接受服务器返回的数据,必须是jsonp类型才行
        cache:false,
        // jsonp:"wowo", //如果这两项没有设置,默认发送给服务器地址是:server.php?callback=jQuery18302435384537538523_1476780843978&user=root&pass=187
        // jsonpCallback:"nini", //如果设置了发送给服务器的请求是:server.php?wowo=nini&user=root&pass=187
              //以上两项设置其中一项就行了,如果设置了jsonp:"wowo",服务器就用$_GET['wowo']([{},{}])来接收;设置了jsonpCallback,直接就 nini([{},{}])
        success: function(data){
          alert('能获取服务器返回的信息,跨域成功'); //这里的回调触发,只有客户端成功接受到了data,就是url返回的数据才能发出到。
        }
      });
      return false;
    });

     

    服务器端:

    header('Content-Type: text/html; charset=utf-8');
    $con=mysqli_connect('localhost', 'root', '', 'test2');
    mysqli_query($con, "insert into liuyan_user(liuyan_username,liuyan_userpass) values ('".$_GET['user']."','".$_GET['pass']."')"); //跨域时,数据发送给服务器都是以get方式发送的
     
     
    $data='[{name:"chenge"},{age:24}]'; //这里就是要返回给客户端的数据,必须还是json格式的,不然就出错。之前设置了也必须设置dataType:"jsonp"
    $str=$_GET['wowo'].'('.$data.')';
    //这里其实就是 'jQuery18302435384537538523_1476780843978([{name:"chenge"},{age:24}])' ,直接把这个结果输出,客户端就能接收到了,因为jquery已经封装好了。
    //如果设置了jsonpCallback:"nini",直接就 'nini([{name:"chenge"},{age:24}])'
    echo $str;  //'jQuery18302435384537538523_1476780843978([{name:"chenge"},{age:24}])'

     

     

    以上方法,貌似只能支持谷歌、火狐。遇到IE就完全不能兼容了。但是IE8、9有专门插件兼容。

    推荐查看https://sdeno.com/?p=6218  ,兼容ie6/7/8浏览器。

    jquery.xdomainrequest.min

    约束:
    1. 使用 $.ajax 发送请求,jQuery 版本需在 1.5+
    2. 服务端需设置 header:header(‘Access-Control-Allow-Origin:*’);
    3. 请求方式仅限:GET / POST
    4. 协议仅限:HTTP / HTTPS,且必须相同
    5. 仅限异步请求

    客服端:

    // GET
    $.getJSON('http://jsonmoon.jsapp.us/').done(function(data) {
      console.log(data.name.first);
    });
    
    // POST
    $.ajax({
      url: 'http://frozen-woodland-5503.herokuapp.com/cors.json',
      data: 'this is data being posted to the server',
      contentType: 'text/plain',
      type: 'POST',
      dataType: 'json'
    }).done(function(data) {
      console.log(data.name.last);
    });

     

    服务器端:

    <?php
      header('Access-Control-Allow-Origin:*');
      echo '[{"name":"123"}]';  //注意标点符号都要正确
    ?>

     

     

    第二种跨域方法是修改header表头信息参考:《推荐看php header 跨域

    nodejs 跨域表头信息修改如:

    //服务器 修改如下
    //客服端url接收/cors地址
    app.post('/cors', function(req, res) {
     res.header("Access-Control-Allow-Origin", "*");
     res.header("Access-Control-Allow-Headers", "X-Requested-With");
     res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");
     res.header("X-Powered-By", ' 3.2.1')
     res.header("Content-Type", "application/json;charset=utf-8");
     var data = {
      name: req.body.name + ' - server 3001 cors process',
      id: req.body.id + ' - server 3001 cors process'
     }
     console.log(data)
     res.send(data)
     res.end()
    })

     http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651551256&idx=1&sn=25964236012615cf673e008bfa025507&chksm=8025a1d9b75228cf18daef463a9cea1197fc8fd14a52410628d1c4a5130663dfe9d82d5d613d&scene=0#wechat_redirect