【问题标题】:Modify :target in javascript在 javascript 中修改 :target
【发布时间】:2019-02-25 10:02:06
【问题描述】:

我在 CSS 中有这个:

#box:target {
    box-shadow: 0px 0px 20px black;
}

在“父”页面(page1)上,我有一个按钮可以让您转到另一个页面:“page2.html#box”。所以当我加载页面时应用#box:target。 但是使用 page1 上的按钮,我激活了一个功能,其目的是更改 #box:target 属性。我正在寻找一种在javascript中改变它的方法。不是:focus

【问题讨论】:

  • box-shadow property, after activate a function你能详细说明一下吗
  • 你的问题很不清楚。 :target 与聚焦无关。你问的是聚焦还是瞄准?
  • 你能用不同样式的:focus伪类developer.mozilla.org/en-US/docs/Web/CSS/:focus吗?
  • 我建议使用:focus:hover。如果您想要更流畅的动画并避免repaint,我建议您在伪元素:before 上设置您的附加框阴影并对其进行动画处理(请参阅How to animate box-shadow

标签: javascript css target


【解决方案1】:

读者须知

此答案涉及原始帖子初稿

OP 已被编辑为一个完全不同的问题。因此,如果此答案令人困惑,您需要查看编辑。若带来不便请谅解。


:target

简单的样式切换不需要 JavaScript。看来您误解了实现:target 伪类所需的要求。


要求

  1. 两个<a>nchor 标签和一个任意类型的标签作为目标。

        <a>ON</a>  <a>OFF</a>  <section>SECTION</section> 
    

    一个&lt;a&gt;“打开”新的&lt;section&gt; 样式,另一个&lt;a&gt;“关闭”

  2. 接下来,&lt;section&gt; 需要一个#id&lt;a&gt; 都需要 href 属性。每个href 的值彼此不同并且是特定的(请参阅此示例下方的注释):

          <a href="">ON</a>     <a href="">OFF</a>  <section id="S">SECTION</section> 
    

    ON:必须是    ☝        OFF:必须是☝
    目标的#id:#S    “非跳跃”值#/

  3. 在 CSS 中,添加两个规则集:

    1. 第一个是默认的目标标签(OFF):
      #S { width: 44vw; height: 44vw; border: 4px solid #444 }
      
    2. 第二个是激活的目标标签 (ON)。为:target 伪类添加后缀:
      #S:target { text-shadow: 4px 4px 4px 4px #444; }
      
  4. HTML 布局或多或少应该是这样的:

       <a href="#S">ON</a>  <a href="#/">OFF</a>  <section id="S">SECTION</section>
    

演示

html,
body {
  font: 900 10vh/1 Consolas;
}

a {
  color: blue;
}

a:hover,
a:active {
  color: cyan;
}

#B {
  box-shadow: 12px 5px 8px 10px inset rgba(0, 0, 0, 0.4);
  border: 6px inset rgba(0, 0, 0, 0.8);
  width: 40vw;
  height: 40vh;
  font-size: 20vh;
  text-shadow: 4px 7px 2px rgba(0, 0, 0, 0.6);
}

#B:target {
  box-shadow: 12px -5px 4px 4px rgba(0, 0, 0, 0.4);
  text-shadow: 4px -3px 0px #fff, 9px -8px 0px rgba(0, 0, 0, 0.55);
}
<a href="#B" class='on'>ON_</a><a href="#/" class='off'>OFF</a>

<figure id='B' class='box'>
  <figcaption>BOX</figcaption>
</figure>

【讨论】:

  • 我想你误解了我的问题。我只想在元素被定位时修改 css 规则,例如更改 boxShadow 属性。我完全知道 :target 的用途。
  • 我绝对没有问其他问题。你根本不明白我想要什么
  • 向我解释.box:target 应该做什么以及为什么在帖子的第一个版本中没有提及子页面或父页面?关于最新版本,为什么将.box:target 更改为#box:target?如果没有&lt;iframe&gt;,那么父子页面的意义是什么?还有第一个版本的功能发生了什么,为什么不在当前版本中?我可能不明白,但似乎其他人也不明白——你读过 cmets 吗?
  • 请原谅我没有完美掌握HTML,有学习的人知道。那你就不能正常点,给我解释一下吗?
  • 并且 :target 用于当 ielement 的 id 由带有 href="#element" 的 a 标记定位时使用
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-21
  • 2019-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多