Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >小程序session为空 无法登陆服务?

小程序session为空 无法登陆服务?

提问于 2018-11-15 05:26:03
回答 1关注 0查看 407

回答 1

天使的炫翼

发布于 2017-11-29 06:19:48

一般瀑布流插件有配置支持动态从数据库中读取数据的,你认真看下API。

如果确认你的这个不支持动态读取,只能换一个瀑布流插件了,如这个:

(function ($) {

var

//参数

setting = {

column_width: 240, //列宽

column_className: 'waterfall_column', //列的类名

column_space: 10, //列间距

cell_selector: '.cell', //要排列的砖块的选择器,context为整个外部容器

img_selector: 'img', //要加载的图片的选择器

auto_imgHeight: true, //是否需要自动计算图片的高度

fadein: true, //是否渐显载入

fadein_speed: 600, //渐显速率,单位毫秒

insert_type: 1, //单元格插入方式,1为插入最短那列,2为按序轮流插入

getResource: function (index) { } //获取动态资源函数,必须返回一个砖块元素集合,传入参数为加载的次数

},

//

waterfall = $.waterfall = {}, //对外信息对象

$waterfall = null; //容器

waterfall.load_index = 0, //加载次数

$.fn.extend({

waterfall: function (opt) {

opt = opt || {};

setting = $.extend(setting, opt);

$waterfall = waterfall.$waterfall = $(this);

waterfall.$columns = creatColumn();

render($(this).find(setting.cell_selector).detach(), false); //重排已存在元素时强制不渐显

waterfall._scrollTimer2 = null;

$(window).bind('scroll', function () {

clearTimeout(waterfall._scrollTimer2);

waterfall._scrollTimer2 = setTimeout(onScroll, 300);

});

waterfall._scrollTimer3 = null;

$(window).bind('resize', function () {

clearTimeout(waterfall._scrollTimer3);

waterfall._scrollTimer3 = setTimeout(onResize, 300);

});

}

});

function creatColumn() {//创建列

waterfall.column_num = calculateColumns(); //列数

//循环创建列

var html = '';

for (var i = 0; i < waterfall.column_num; i++) {

html += '<div class="' + setting.column_className + '" style="width:' + setting.column_width + 'px; display:inline-block; *display:inline;zoom:1; margin-left:' + setting.column_space / 2 + 'px;margin-right:' + setting.column_space / 2 + 'px; vertical-align:top; overflow:hidden"></div>';

}

$waterfall.prepend(html); //插入列

return $('.' + setting.column_className, $waterfall); //列集合

}

function calculateColumns() {//计算需要的列数

var num = Math.floor(($waterfall.innerWidth()) / (setting.column_width + setting.column_space));

if (num < 1) { num = 1; } //保证至少有一列

return num;

}

function render(elements, fadein) {//渲染元素

if (!$(elements).length) return; //没有元素

var $columns = waterfall.$columns;

$(elements).each(function (i) {

if (!setting.auto_imgHeight || setting.insert_type == 2) {//如果给出了图片高度,或者是按顺序插入,则不必等图片加载完就能计算列的高度了

if (setting.insert_type == 1) {

insert($(elements).eq(i), setting.fadein && fadein); //插入元素

} else if (setting.insert_type == 2) {

insert2($(elements).eq(i), i, setting.fadein && fadein); //插入元素

}

return true; //continue

}

if ($(this)[0].nodeName.toLowerCase() == 'img' || $(this).find(setting.img_selector).length > 0) {//本身是图片或含有图片

var image = new Image;

var src = $(this)[0].nodeName.toLowerCase() == 'img' ? $(this).attr('src') : $(this).find(setting.img_selector).attr('src');

image.onload = function () {//图片加载后才能自动计算出尺寸

image.onreadystatechange = null;

if (setting.insert_type == 1) {

insert($(elements).eq(i), setting.fadein && fadein); //插入元素

} else if (setting.insert_type == 2) {

insert2($(elements).eq(i), i, setting.fadein && fadein); //插入元素

}

image = null;

}

image.onreadystatechange = function () {//处理IE等浏览器的缓存问题:图片缓存后不会再触发onload事件

if (image.readyState == "complete") {

image.onload = null;

if (setting.insert_type == 1) {

insert($(elements).eq(i), setting.fadein && fadein); //插入元素

} else if (setting.insert_type == 2) {

insert2($(elements).eq(i), i, setting.fadein && fadein); //插入元素

}

image = null;

}

}

image.src = src;

} else {//不用考虑图片加载

if (setting.insert_type == 1) {

insert($(elements).eq(i), setting.fadein && fadein); //插入元素

} else if (setting.insert_type == 2) {

insert2($(elements).eq(i), i, setting.fadein && fadein); //插入元素

}

}

});

}

function public_render(elems) {//ajax得到元素的渲染接口

render(elems, true);

}

function insert($element, fadein) {//把元素插入最短列

if (fadein) {//渐显

$element.css('opacity', 0).appendTo(waterfall.$columns.eq(calculateLowest())).fadeTo(setting.fadein_speed, 1);

} else {//不渐显

$element.appendTo(waterfall.$columns.eq(calculateLowest()));

}

}

function insert2($element, i, fadein) {//按序轮流插入元素

if (fadein) {//渐显

$element.css('opacity', 0).appendTo(waterfall.$columns.eq(i % waterfall.column_num)).fadeTo(setting.fadein_speed, 1);

} else {//不渐显

$element.appendTo(waterfall.$columns.eq(i % waterfall.column_num));

}

}

function calculateLowest() {//计算最短的那列的索引

var min = waterfall.$columns.eq(0).outerHeight(), min_key = 0;

waterfall.$columns.each(function (i) {

if ($(this).outerHeight() < min) {

min = $(this).outerHeight();

min_key = i;

}

});

return min_key;

}

function getElements() {//获取资源

$.waterfall.load_index++;

return setting.getResource($.waterfall.load_index, public_render);

}

waterfall._scrollTimer = null; //延迟滚动加载计时器

function onScroll() {//滚动加载

clearTimeout(waterfall._scrollTimer);

waterfall._scrollTimer = setTimeout(function () {

var $lowest_column = waterfall.$columns.eq(calculateLowest()); //最短列

var bottom = $lowest_column.offset().top + $lowest_column.outerHeight(); //最短列底部距离浏览器窗口顶部的距离

var scrollTop = document.documentElement.scrollTop || document.body.scrollTop || 0; //滚动条距离

var windowHeight = document.documentElement.clientHeight || document.body.clientHeight || 0; //窗口高度

if (scrollTop >= bottom - windowHeight) {

render(getElements(), true);

}

}, 100);

}

function onResize() {//窗口缩放时重新排列

if (calculateColumns() == waterfall.column_num) return; //列数未改变,不需要重排

var $cells = waterfall.$waterfall.find(setting.cell_selector);

waterfall.$columns.remove();

waterfall.$columns = creatColumn();

render($cells, false); //重排已有元素时强制不渐显

}

})(jQuery);

配置getResource即可。。自己用ajax读出数据后调用render回调即可

var totalpage = 1;//从数据库中读取总页数赋值给这个js变量,如<%=你的服务器端变量名%>

function getResource(index, render) { if (index + 1 > totalpage || opt.loading) return false; opt.loading = true; $.ajax({ url: '动态页地址', data: { page: index + 1, pagesize: 8}, type: 'POST', complete: function (xhr) { opt.loading = false; $('#pLoading').hide(); render($(xhr.responseText)); } }); }

var opt = { auto_imgHeight: true, insert_type: 1 };

if (totalpage > 1) opt.getResource = getResource;

$('#waterfall').waterfall(opt);

和开发者交流更多问题细节吧,去 写回答
相关文章
jquery瀑布流插件(WookMark)
谈起Wookmark我想做过前端的大侠都不会觉得陌生,它就是远近闻名的流布局jQuery插件,这个插件使用起来非常简单,需要引入两个js:
李维亮
2021/07/09
1.5K0
容易好用的jQuery瀑布流插件Wookmark
Wookmark jQuery插件大致使用position:absolute来重构内容实现瀑布流布局!
李维亮
2021/07/09
1.2K0
jQuery 实现瀑布流 个人完美版
前面已经通过这种方式实现过瀑布流了。看到慕课网上有一个类似的视频教程,就仔细看了一下。就大体实现思路来说,基本是没差的。但是就实现方法来说,慕课网上的教程(http://www.imooc.com/learn/101)我感觉还是繁琐冗余了。尤其是javascript原生实现方法。 但其jquery方法,我还是学到一点的。就是如何查找数值在数组中的索引。
FungLeo
2022/05/05
9950
干货 | 如何实现jQuery响应式瀑布流 ?
开门见山,本文介绍响应式的瀑布流的实现方法。 最终效果图如下,改变浏览器大小效果更棒哦~ 以下我们将每个瀑布流盒子简称为box 使用数组记录每个box宽和高 ---- 设置不同屏幕宽度下每一行box的数量 使用$(window).width()获取屏幕宽度 根据不同屏幕宽度设置每一行box的数量 得到每个box的宽度 这里使用最傻的方法计算,有待优化 1 2 3 4 5 6var num = 4; //每行box数量 if ($(window).width() <= 500) num = 1; if
腾讯NEXT学位
2019/01/18
1.9K0
干货 | 如何实现jQuery响应式瀑布流 ?
自己用jQuery写一个瀑布流
这个月一直在忙工作。一直没有机会学习新的知识。前两天,突然想写一个瀑布流代码。倒不是找不到瀑布流代码。而是我想自己练练脑子。 首先,先考虑思路。所有的图片,全部采用相对父目录定位的方式。然后用jQuery来找出它应该排在什么位置。最终,达成瀑布流的效果。 想再多没用。开干。
FungLeo
2022/05/05
1.1K0
响应式jquery瀑布流结合图片延迟加载特效
此作品是一款非常实用的jquery特效,结合了两个jquery插件jquery瀑布流插件blocksit和图片延迟加载插件jquery.lazyload,网站上分享过很多款瀑布流作品,可是很多网友们都觉得不是很懂,有点复杂,今天有空就把此作品整理了出来分享给大家学习用,如果作品有什么问题请多多反馈。。。
李维亮
2021/07/09
5K0
iOS瀑布流
瀑布流Demo 瀑布流截图.gif 使用UICollectionView实现瀑布流 自定义UICollectionViewLayout中的主要代码: YJWaterFlowLayout.h中代码: #
hrscy
2018/08/30
1.5K0
iOS瀑布流
分享:纯 css 瀑布流 和 js 瀑布流
通过 Multi-columns 相关的属性 column-count、column-gap 配合 break-inside 来实现瀑布流布局。
Krry
2018/09/10
9K1
分享:纯 css 瀑布流  和 js 瀑布流
iOS 瀑布流封装
初始化仅三行代码,只需设置代理和样式,item的大小、头脚视图的大小、行列数以及间距都可以在对应样式的代理方法中自定义,然后设置为UICollectionView的自动流水布局样式,并结合UICollectionView的用法使用,详情看示例
且行且珍惜_iOS
2018/05/21
1.7K0
iOS 瀑布流封装
瀑布流.gif 功能描述:WSLWaterFlowLayout 是在继承于UICollectionViewLayout的基础上封装的带头脚视图的瀑布流控件。目前支持竖向瀑布流(item等宽不等高、支持头脚视图)、水平瀑布流(item等高不等宽 不支持头脚视图)、竖向瀑布流( item等高不等宽、支持头脚视图)三种样式的瀑布流布局。 前言 :近几个月一直在忙公司的ChinaDaily和国务院项目,没有抽出时间来写简书,现在终于算是告一段落了,抽出时间来更一篇 实现:主要是重写父类的几个涉及布局属性的方法
且行且珍惜_iOS
2018/05/22
2.1K0
分享一次纯 css 瀑布流 和 js 瀑布流
现在百度图片,360 图片搜索,都是以一种瀑布流的形式展示,那么接下来,分享一波纯 css 瀑布流 和 js 瀑布流
Krry
2018/11/04
2.5K0
分享一次纯 css 瀑布流  和 js 瀑布流
JQuery实现瀑布流布局
分享一个基于JQuery实现的瀑布流布局,效果如下:  实现代码如下,欢迎大家复制粘贴。 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>基于JQuery实现的瀑布流布局案例</title> <style type="text/css"> * { padding: 0;
越陌度阡
2022/11/27
1.3K0
JQuery实现瀑布流布局
【iOS】瀑布流的实现
Simulator Screen Shot - iPhone 8 - 2020-01-16 at 17.32.16.png
MapleYe
2020/03/28
2.1K0
原生javascript 实现瀑布流
刚用 jquery 实现了瀑布流效果。但是其实现方法,我并不满意,所以我还在思考,如何更加简单明了的实现瀑布流效果。与其缠绕在 jquery 里,不如直接跳到 javascript 原生方法里。
FungLeo
2022/05/05
1.4K0
多个Listview瀑布流效果
多个Listview瀑布流效果 效果展示 原理解释 自定义MyLinearLayout,继承至LinearLayout,在布局文件中,将3个listview放置在MyLinearLayout中。 重写
felix
2018/06/08
1.3K0
图片瀑布流,so easy!
简单来说,就是有很多图片平铺在页面上,每张图片的宽度相同,但是高度不同,这样错落有致的排列出 n 列的样子很像瀑布,于是就有了瀑布流图片一说。
Daotin
2019/11/10
1.7K0
图片瀑布流,so easy!
15.瀑布流、测量
排行界面 TopProtocol :json数据就是写字符串,所以不需要写bean对象 public class TopProtocol extends BaseProtocol<List<Strin
六月的雨
2018/05/14
1.6K0
瀑布流组件vue-waterfall
git地址:https://github.com/MopTym/vue-waterfall.git
阿超
2022/11/02
3.7K0
瀑布流组件vue-waterfall
浅析瀑布流布局及其原理视频_jquery瀑布流布局
要做到每一张图片都根据上面的高度自动适应排列,那么我们就不能单纯地靠html+css布局了,需要用到js来帮助计算位置(其实用CSS3也能布局)。那么计算什么呢?
全栈程序员站长
2022/11/15
1.4K0
浅析瀑布流布局及其原理视频_jquery瀑布流布局
iOS 瀑布流之栅格布局
实现的栅格布局效果示意图 需求示意图 确定需求 由上面的需求示意图可知模块的最小单位是正方形,边长是屏幕宽除去边距间隔后的四等份,而每个模块的样式有小正方形(1:1)、大正方形(2:2)、横长方形(2:1)、纵长方形(1:2),动态的根据服务器下发模块样式绘制布局,可以横向滑动,限定为两行的高度。 注意:上面的示意宽高比是约等于,忽略了间距,计算的时候千万别忘了。 实现思路 由上需求分析可知,我们可以让后台每个模块下发width和height两个字段,字段的值是1或2就行了,然后我们就能根据宽高字
且行且珍惜_iOS
2018/08/13
1.8K0
iOS 瀑布流之栅格布局

相似问题

智能pos怎么对接?

1582

远程对接怎么搞?

1613

iOS httpdns怎么跟 AFNetworking 对接?

2509

公众号开发不同语言怎么对接?

0206

拉流怎么测度?

1348
相关问答用户
擅长3个领域
擅长4个领域
腾讯云TDP | 高级后端开发工程师擅长3个领域
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档