TL;DR:Sticky 实际上能够对我通过 JavaScript 提供的更改使用react吗?如果是,怎么做?
(该项目使用 Foundation 6.2 和 WordPress 4.4,主题安装使用 Node.js/npm 和 gulp 4.0。我的问题,详细信息,以粗体标记。)
我想制作 nav bar sticky 使用 Foundation 的 Sticky 插件,但只有当我点击一个按钮时。这意味着当 DOM 全部完成时,nav bar 不应该“单独存在”,而是留在文档中的顶部位置。 此外,它应该在向下滚动时消失,但在向上滚动时保持不变。
nav bar 已正确包装在所有必需的 div 中s,所以 nav酒吧能坚持。 “另外”部分出现了问题。我的想法是首先使用 PHP 实例化 Sticky:
<div data-sticky-container>
<header class="header" role="banner" id="sticky_header" data-sticky data-top-anchor="1"
data-btm-anchor="content:top" data-options="marginTop:0;" style="width:100%"
>
<?php get_template_part('parts/nav', 'offcanvas-topbar'); ?>
</header>
</div>
之后,更改data-btm-anchor使用在点击时触发的 JavaScript 滚动到当前滚动位置。这没有我想要的那么好用。到目前为止我尝试了什么:
getElementByID 时然后 setAttribute , data-btm-anchor PHP 文件中的内容确实会根据 Firebug 进行更改,但这不会影响 nav酒吧一点;它留在原处。 我是否需要“重新实例化”Sticky,如果需要,如何实现?Setting options with JavaScript involves passing an object into the constructor function, like this:
var options = { multiExpand: true, allowAllClosed: false }; var accordion = new Foundation.Accordion($('#some-accordion'), options);
这是否意味着我可以将新参数传递给一个已经存在的插件实例?每当我传递一个新的 Foundation.Sticky 时对象只不过是一个不同的 btmAchor 作为我的 jQuery('#sticky_header') 的选项数组参数,什么都没发生。
docs还建议以编程方式将 Sticky 添加到我的“sticky_header”。如果可行,我可以尝试直接更改 jQuery 对象。到目前为止,我已经能够通过以下方式成功地将 Sticky 插件绑定(bind)到我的 header :
assets/js/scripts (然后运行 gulp )<header class="header"> 中删除所有数据粘性标签, 因此当 DOM 完成加载时,没有向 header 注册粘性插件以编程方式添加插件:
function button_fire(){
var options = {
topAnchor:"1",
btmAnchor:"footer:top",
marginTop:"1"
};
var stick = new Foundation.Sticky(jQuery('.header'), options);
}
标题现在根据 Firebug 获得“粘性”类。但它仍然不起作用 - 相反,它会出现故障:“标题空间”有些折叠,因此它略微覆盖了“内容”div以下。你知道什么,标题不粘。这是一个错误吗?
假设它现在可以“出色地”工作,理论上我可以通过取消引用 var stick 来更改属性吗?或使用 jQuery('#sticky_header')或 jQuery('.header') ?
最重要的是,jQuery 无法正常工作。我在使用 $ 时遇到了很多问题 在我的脚本中,例如,我无法运行 destroy() Sticky 的方法因此(如果它起作用,我可能已经销毁了 Sticky 的一个实例以创建一个新的,并将 btmAnchor 设置为新的滚动位置)。我将为此打开另一个问题。
最佳答案
你可以在你的 scss 中使用 sticky css 属性。
在 html 或 php 中向您的组件添加类:
<div data-sticky-container class="sticky-container">
在 scss 或 css 中:
.sticky-container {
position: sticky;
top: 0;
z-index: 10;
}
现在只需输入您需要的距顶部的距离!
关于javascript - 关节 WP4 (SASS) : Changing Properties in Sticky,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35682646/
我想在一个没有Sass引擎的类中使用Sass颜色函数。我已经在项目中使用了sassgem,所以我认为搭载会像以下一样简单:classRectangleincludeSass::Script::FunctionsdefcolorSass::Script::Color.new([0x82,0x39,0x06])enddefrender#hamlengineexecutedwithcontextofself#sothatwithintemlateicouldcall#%stop{offset:'0%',stop:{color:lighten(color)}}endend更新:参见上面的#re
我遇到了一个非常奇怪的问题,我很难解决。在我看来,我有一个与data-remote="true"和data-method="delete"的链接。当我单击该链接时,我可以看到对我的Rails服务器的DELETE请求。返回的JS代码会更改此链接的属性,其中包括href和data-method。再次单击此链接后,我的服务器收到了对新href的请求,但使用的是旧的data-method,即使我已将其从DELETE到POST(它仍然发送一个DELETE请求)。但是,如果我刷新页面,HTML与"new"HTML相同(随返回的JS发生变化),但它实际上发送了正确的请求类型。这就是这个问题令我困惑的
我有这个:AccountSummary我想单击该链接,但在使用link_to时出现错误。我试过:bot.click(page.link_with(:href=>/menu_home/))bot.click(page.link_with(:class=>'top_level_active'))bot.click(page.link_with(:href=>/AccountSummary/))我得到的错误是:NoMethodError:nil:NilClass的未定义方法“[]” 最佳答案 那是一个javascript链接。Mechan
当我刚刚运行middleman时服务,all.css编译得很好,只包含对+box-shadow(none)的调用:/*line1,/home/yang/asdf/source/stylesheets/content.css.sass*/div{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;}但是当我构建网站时,我得到了这个Sass/Compass错误:$middlemanbuildSlim::EmbeddedEngineisdeprecated,itiscalledSlim::EmbeddedinSlim2.0
我已经安装了最新版本的compass、sass和susy。但我仍然收到此错误:Unabletoactivatesusy-2.1.1,becausesass-3.2.17conflictswithsass(~>3.3.0)有人知道这个Ruby是如何工作的吗?这是我安装的gem的列表:***LOCALGEMS***CFPropertyList(2.2.0)chunky_png(1.3.0)compass(0.12.4)compass-core(1.0.0.alpha.19)compass-import-once(1.0.4)compass-rails(1.1.3)fssm(0.2.10)l
我看到有关未找到文件min.map的错误消息:GETjQuery'sjquery-1.10.2.min.mapistriggeringa404(NotFound)截图这是从哪里来的? 最佳答案 如果ChromeDevTools报告.map文件的404(可能是jquery-1.10.2.min.map、jquery.min.map或jquery-2.0.3.min.map,但任何事情都可能发生)首先要知道的是,这仅在使用DevTools时才会请求。您的用户不会遇到此404。现在您可以修复此问题或禁用sourcemap功能。修复:获取文
我已经有一个在不同文件夹中包含.haml和.scss文件的项目。我按照这里的指南http://winstonyw.com/2013/02/24/jekyll_haml_sass_and_github_pages/创建了_plugins/haml.rb和_plugins/sass.rb我将我所有的.scss文件移动到./assets/css/文件夹中为了确保,我还创建了layouts文件夹并将所有.haml文件放在其中。我运行了jekyllserve--watch并且这些.haml/.scss文件没有在_sites中转换为.html或.css文件。我也无法通过浏览器访问它们。我在这里试过
我在一台Windows764位机器上使用Sass和Ruby(最新版本),我正在我的家庭服务器上处理一个共享文件夹。(但是,我不得不承认问题本身也出现在服务器上,因为我试图安装Ruby并直接-watch服务器上的文件)。问题如下:如果我第一次保存,检测到变化,我的style.css被直接覆盖。之后,我总是需要保存多达7次才能覆盖style.css。每次都会检测到更改,但不会编译任何内容。这是一个屏幕:>>>Sassiswatchingforchanges.PressCtrl-Ctostop.overwritestyle.css>>>Changedetectedto:E:/Websites
是否有一个SASS扩展可以采用SASS样式表,找到中性属性(例如border-radius)并为其输出所有特定于供应商的属性(例如-webkit-border-radius等)自动?我真的不想手动创建所有混入,也不想手动编写代码。我确定一定有这样的扩展名,但我找不到它。帮忙? 最佳答案 有一个非常好的gem可以满足您的需求。它叫做Bourbon它不会用特定于供应商的css替换您的css,因为它可以像SASS一样工作。它基本上是一个正确生成跨浏览器css的mixin集合。 关于ruby-用
我有一个用Rails3编写的站点。我的帖子模型有一个名为“内容”的文本列。在帖子面板中,html表单使用tinymce将“content”列设置为textarea字段。在首页,因为使用了tinymce,post.html.erb的代码需要用这样的原始方法来实现。.好的,现在如果我关闭浏览器javascript,这个文本区域可以在没有tinymce的情况下输入,也许用户会输入任何xss,比如alert('xss');.我的前台会显示那个警告框。我尝试sanitize(@post.content)在posts_controller中,但sanitize方法将相互过滤tinymce样式。例如