鼠标窗口固定位置,页面滚动
KendoUI window fixed position on page scrolling
我有一个带有滚动条的长页面。当我打开一个模态kenoWindow并滚动页面时,窗口会离开查看区域。我怎样才能把窗户固定在原来的地方?我想让它的位置固定:
div.k-window { position:fixed !important; }
但是如果我试图移动窗口,它会向下跳(取决于页面的滚动位置)。
任何想法?
有一个更简单/更好的方法。下面的代码片段将使图像在屏幕上居中,并位于距离顶部20%的位置,即使在滚动时也是如此:
$('#window').data('kendoWindow').center();
$('#window').closest(".k-window").css({
position: 'fixed',
margin: 'auto',
top: '20%'
});
结合position:fixed,你会发现它的行为和你想要的一样,而且代码更少。
我已经得到它的工作与重新定位窗口的页面滚动事件。
var fixedPosWindows = null;
var currentWindowScrollPos;
function FixWindowPos(kwin) {
if (fixedPosWindows === null) {
fixedPosWindows = [];
currentWindowScrollPos = $(window).scrollTop();
$(window).scroll(function () {
var top = $(window).scrollTop();
var diff = top - currentWindowScrollPos;
for (var i = 0; i < fixedPosWindows.length ; i++) {
var w = fixedPosWindows[i].parent();
w.css("top", parseInt(w.css("top"), 10) + diff + "px");
}
currentWindowScrollPos = top;
});
}
fixedPosWindows.push(kwin);
}
然后我为每个我想要固定位置的窗口调用这个函数:
var w = $("#window").kendoWindow();
FixWindowPos(w);
如果你销毁一个窗口,它不会从数组中移除。因此,如果它是一个具有大量被破坏和重新创建的窗口的长存活页面,则可能存在一些性能问题。但在大多数情况下,这不是问题。
编辑:下面是jsfiddle: http://jsfiddle.net/mahmoodvcs/GXwfN/
有更好的主意吗?
我已经得到了这个解决方案,但它涉及jQuery位置
var kendo_wnd = $("#window")
.kendoWindow({
title: "Title of Window",
modal: true,
visible: false,
resizable: false,
width: 500,
open: function (e) {
var currentWindow = $(this.element);
currentWindow.closest(".k-window").position({ my: "center", at: "center", of: window }).css("position", "fixed");
// Some Code;
}
}).data("kendoWindow");
我喜欢KakashiJack的解决方案,但最终还是简化了它。使用Kendo内置的center函数代替JQuery的position
使用剑道的例子http://docs.telerik.com/kendo-ui/web/window/overview initialize-window-center-and-configure-button-click-action
$(document).ready(function(){
var win = $("#window").kendoWindow({
height: "200px",
title: "Centered Window",
visible: false,
width: "200px",
open: function (e) {$(this.element).closest(".k-window").css("position", "fixed")}
}).data("kendoWindow");
});
$("#openButton").click(function(){
var win = $("#window").data("kendoWindow");
win.center();
win.open();
});
- 有没有一种方法可以直接从cordova获得滚动位置
- 根据滚动位置动态更改href
- 是否可以使用flexbox显示模型设置元素的滚动位置
- 浏览器持续滚动位置
- Sammy.js缓存和滚动位置时,返回历史
- PHP保持滚动位置
- 按下后退按钮时,如何保持可滚动区域的滚动位置
- 滚动位置 (scrollTop) 硬件是否在浏览器中加速
- 在 React 中创建滚动位置指标
- 关闭移动菜单后恢复滚动位置
- 检测可滚动元素内的滚动位置
- 如何在反应性呈现新帖子时保持滚动位置
- UI 路由器 - 在状态之间转换时记住滚动位置
- 单击下拉列表时保持滚动位置(javascript)
- 保留选项后的滚动位置(单击时)
- js-scrollToEl获取滚动位置
- Backbone.js路由和滚动位置
- 如何更改页眉'的底部边框颜色取决于滚动位置
- 如何精确地获得页面的最大滚动位置
- 导航栏固定底部位置,当到达滚动位置时切换到静态