前端笔记-201807

1、css浮动

<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        .row {
            width: 265px;
            margin: 50px;
        }
        .ipt-key {
            width: 180px;
            height: 34px;
            line-height: 34px;
            padding: 0 10px;
            border: 1px solid #ddd;
        }
        .btn-key {
            float: right;
            height: 36px;
            padding: 0 10px;
            border: 1px solid #ddd;
            background: none;
        }
    </style>
</head>
<body>
    <div class="row">
        <!-- 'ipt-box'这个div没有浮动 -->
        <div class="ipt-box">
            <input class="ipt-key" type="text" placeholder="短信验证码">
        </div>
        <!-- 'btn-key'这个元素右浮动,此时按钮会换行 -->
        <button type="button" class="btn-key">获取</button>
    </div>
</body>

运行效果:

解决办法1:

<div class="row">
    <!-- 'btn-key'这个右浮动元素放到前面 -->
    <button type="button" class="btn-key">获取</button>
    <!-- 'ipt-box'这个div没有浮动 -->
    <div class="ipt-box">
        <input class="ipt-key" type="text" placeholder="短信验证码">
    </div>
</div>

解决办法2:

<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        /*...*/
        .ipt-box {
            float: left;
        }
    </style>
</head>
<body>
    <div class="row">
     <!-- 将'ipt-box'这个div设为左浮动 -->
        <div class="ipt-box">
            <input class="ipt-key" type="text" placeholder="短信验证码">
        </div>
        <button type="button" class="btn-key">获取</button>
    </div>
</body>

个人比较推荐使用方式2,使用方式1是维护原有项目

最终运行效果:

2、@media媒体查询不兼容ie8及以下

参考:http://www.bootcdn.cn/respond.js/

https://www.cnblogs.com/aimyfly/p/4286626.html

使用 respond.js  解决 ie8媒体查询的兼容问题;

1) 需把文件置于服务器上运行。由于安全限制,一些浏览器可能不允许respond.js以 file:// 方式运行(因为它使用 xmlHttpRequest)

以 file:// 方式运行在ie8下会报错SCRIPT5:拒绝访问。

2)包含媒体查询的 css文件需 采用外链形式,

3)引用的respond.js 需置 于媒体查询 css 文件之后;

4)引用的respond.js 文件必须放在本html页内,如shtml文件提出公共部分后则无效。(该条未验证)

<link rel="stylesheet" type="text/css" href="/demo/resource/css/test.css" media="screen and (max- 800px)">
<!-- 只在ie9以下浏览器引入respond.min.js,可以减少其他浏览器的http请求 -->
<!--[if lt IE 9]>
<script src="https://cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->

respond.js目前只支持媒体查询里的一部分属性,如min-width、max-width和媒体类型 (screen、print等) ,转换这些属性来解决不支持媒体查询的浏览器的兼容问题。(该条未验证)

20190709补充

 如果 Respond.js 和 CSS 文件被放在和页面不同的域名或子域名下面时,需要额外的配置(未尝试,解决方案:直接将引入的媒体查询样式放在和页面相同的域名下,就不存在跨域问题

参考:http://dtop.powereasy.net/Item.aspx?id=3701

https://my.oschina.net/ximidao/blog/349130

3、jQueryRotate插件实现转盘抽奖(能够兼容ie8)

1)引入jQueryRotate.2.2.js

2)转动关键代码

$("#lotteryBtn").rotate({
    angle:0, 
    duration: 5000, 
    animateTo: angle+2160, //angle是图片上各奖项对应的角度,2160是我要让指针旋转6圈
    callback:function(){
        // 转动结束回调函数
    }
}); 

4、微博话题墙

参考链接:http://jssdk.sinaapp.com/start.php#website-connect

Step 1. 网站接入

Step 2. 绑定域名

Step 3. 增加命名空间

在您页面的HTML标签中增加XML命名空间:<html xmlns:wb="http://open.weibo.com/wb">

Step 4. 部署wb.js

在您的页面部署wb.js,同时,如果您的页面编码不是UTF-8,请添加charset="utf-8"属性。

<script src="http://tjs.sjs.sinajs.cn/open/api/js/wb.js?appkey=YOUR APPKEY" type="text/javascript" charset="utf-8"></script>(appkey是否需要?)

Step 5. 使用Jssdk或微博组件

部署微博话题墙组件(http://jssdk.sinaapp.com/widget/topic.php

使用:(紫框中部分可以修改组件背景颜色和链接颜色,具体可进一步研究)

微博话题墙组件不兼容ie8(是否有解决方案?)

5、git clone xxx --depth=1

depth用于指定克隆深度,为1即表示只克隆最近一次commit(git clone下载内容过大时,这样可以提高速度)。这样仅获取最新版和一个历史版本,即最后2个版本。

6、css问题

1)图片垂直居中(可兼容ie8)

 

7、极验验证

8、js用POST方式页面跳转,避免在地址栏中显示传递参数

form以post方式提交表单

var data = { // 要传递的数据
    product_id: product_id,
    num: 1
};
var form = $("<form method='post'></form>");
form.attr('action', '【跳转页面路由】');
for(var p in data) {
    var input = $("<input type='hidden'>");
    input.attr('name', p);
    input.val(data[p]);
    form.append(input);
}
$('body').append(form);
form.submit();

9、生成二维码

方式一:jquery.qrcode.min.js

1)引入jquery.min.js和jquery.qrcode.min.js

2)根据链接codeUr生成二维码

$("#pay-qrcode").qrcode({170, height:170, render:"canvas", correctLevel:1, text:codeUrl});

上例是使用canvas渲染二维码,但是canvas不兼容ie8。

$("#pay-qrcode").qrcode({170, height:170, render:"table", correctLevel:1, text:codeUrl});

为了兼容ie8,可以用table渲染二维码,我们会发现二维码实际是使用table表格把每一个二维码的点画出来,这就导致网页上的Dom元素会特别多。生成的二维码大小和canvas方式一样大。

方式二:qrcode.min.js

1)qrcode.min.js

2)根据链接codeUr生成二维码

var qrcode = new QRCode(document.getElementById("pay-qrcode"), {
    width : 170,
    height : 170
});
qrcode.makeCode(codeUrl);

ie8以上浏览器:

 

ie8(二维码大小变小):

 

原文地址:https://www.cnblogs.com/colorful-coco/p/9275129.html