javascript - 如何链接到具有特定过滤器的投资组合页面?

标签 javascript jquery html css

我在如下所示的页面中使用投资组合部分:

$(function() {
  var selectedClass = "";
  $(".fil-cat").click(function() {
    selectedClass = $(this).attr("data-rel");
    $("#portfolio").fadeTo(100, 0.1);
    $("#portfolio div").not("." + selectedClass).fadeOut().removeClass('scale-anm');
    setTimeout(function() {
      $("." + selectedClass).fadeIn().addClass('scale-anm');
      $("#portfolio").fadeTo(300, 1);
    }, 300);
  });
});
body {
  max-width: 900px;
  float: none;
  margin: auto;
}

#portfolio {
  margin: 1rem 0;
  -webkit-column-count: 3;
  -moz-column-count: 3;
  column-count: 3;
  -webkit-column-gap: 1rem;
  -moz-column-gap: 1rem;
  column-gap: 1rem;
  -webkit-column-width: 33.33333333333333%;
  -moz-column-width: 33.33333333333333%;
  column-width: 33.33333333333333%;
}

.tile {
  -webkit-transform: scale(0);
  transform: scale(0);
  -webkit-transition: all 350ms ease;
  transition: all 350ms ease;
}

.tile:hover {}

.scale-anm {
  transform: scale(1);
}

p {
  padding: 10px;
  border-bottom: 1px #ccc dotted;
  text-decoration: none;
  font-family: lato;
  text-transform: uppercase;
  font-size: 12px;
  color: #333;
  display: block;
  float: left;
}

p:hover {
  cursor: pointer;
  background: #333;
  color: #eee;
}

.tile img {
  max-width: 100%;
  width: 100%;
  height: auto;
  margin-bottom: 1rem;
}

.btn {
  font-family: Lato;
  font-size: 1rem;
  font-weight: normal;
  text-decoration: none;
  cursor: pointer;
  display: inline-block;
  line-height: normal;
  padding: .5rem 1rem;
  margin: 0;
  height: auto;
  border: 1px solid;
  vertical-align: middle;
  -webkit-appearance: none;
  color: #555;
  background-color: rgba(0, 0, 0, 0);
}

.btn:hover {
  text-decoration: none;
}

.btn:focus {
  outline: none;
  border-color: var(--darken-2);
  box-shadow: 0 0 0 3px var(--darken-3);
}

::-moz-focus-inner {
  border: 0;
  padding: 0;
}
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<link href="https://npmcdn.com/basscss@8.0.0/css/basscss.min.css" rel="stylesheet" />
<div class="toolbar mb2 mt2">
  <button class="btn fil-cat" href="" data-rel="all">All</button>
  <button class="btn fil-cat" data-rel="web">Websites</button>
  <button class="btn fil-cat" data-rel="flyers">Flyers</button>
  <button class="btn fil-cat" data-rel="bcards">Business Cards</button>
</div>

<div style="clear:both;"></div>
<div id="portfolio">
  <div class="tile scale-anm web all">
    <img src="https://placeholdit.imgix.net/~text?txtsize=33&txt=350%C3%97190&w=350&h=190" alt="" />
  </div>
  <div class="tile scale-anm bcards all">
    <img src="https://placeholdit.imgix.net/~text?txtsize=19&txt=200%C3%97290&w=200&h=290" alt="" />
  </div>
  <div class="tile scale-anm web all">
    <img src="https://placeholdit.imgix.net/~text?txtsize=19&txt=200%C3%97290&w=200&h=290" alt="" />
  </div>
  <div class="tile scale-anm web all">
    <img src="https://placeholdit.imgix.net/~text?txtsize=33&txt=350%C3%97190&w=350&h=190" alt="" />
  </div>
  <div class="tile scale-anm flyers all">
    <img src="https://placeholdit.imgix.net/~text?txtsize=33&txt=350%C3%97190&w=350&h=190" alt="" />
  </div>
  <div class="tile scale-anm bcards all">
    <img src="https://placeholdit.imgix.net/~text?txtsize=19&txt=200%C3%97290&w=200&h=290" alt="" />
  </div>
  <div class="tile scale-anm flyers all">
    <img src="https://placeholdit.imgix.net/~text?txtsize=33&txt=350%C3%97190&w=350&h=190" alt="" />
  </div>
  <div class="tile scale-anm web all">
    <img src="https://placeholdit.imgix.net/~text?txtsize=19&txt=200%C3%97290&w=200&h=290" alt="" />
  </div>
  <div class="tile scale-anm flyers all">
    <img src="https://placeholdit.imgix.net/~text?txtsize=19&txt=200%C3%97290&w=200&h=290" alt="" />
  </div>
  <div class="tile scale-anm web all">
    <img src="https://placeholdit.imgix.net/~text?txtsize=33&txt=350%C3%97190&w=350&h=190" alt="" />
  </div>
  <div class="tile scale-anm bcards all">
    <img src="https://placeholdit.imgix.net/~text?txtsize=19&txt=200%C3%97290&w=200&h=290" alt="" />
  </div>
  <div class="tile scale-anm web all">
    <img src="https://placeholdit.imgix.net/~text?txtsize=33&txt=350%C3%97190&w=350&h=190" alt="" />
  </div>
  <div class="tile scale-anm bcards all">
    <img src="https://placeholdit.imgix.net/~text?txtsize=33&txt=350%C3%97190&w=350&h=190" alt="" />
  </div>
  <div class="tile scale-anm web all">
    <img src="https://placeholdit.imgix.net/~text?txtsize=33&txt=350%C3%97190&w=350&h=190" alt="" />
  </div>
  <div class="tile scale-anm web all">
    <img src="https://placeholdit.imgix.net/~text?txtsize=33&txt=350%C3%97190&w=350&h=190" alt="" />
  </div>
  <div class="tile scale-anm bcards all">
    <img src="https://placeholdit.imgix.net/~text?txtsize=19&txt=200%C3%97290&w=200&h=290" alt="" />
  </div>
</div>

<div style="clear:both;"></div>

在不同的页面上,我有一个带有指向投资组合部分的链接的按钮。但我想要的是一个按钮(在不同的页面中),它进入投资组合,已经过滤到某个元素。例如,我想从另一个页面直接将用户带到“传单”元素,这样他们就不必过滤任何东西。是否可以?我怎样才能做到这一点?

已编辑

在尝试标记为正确的答案的解决方案后,我注意到它适用于一种特定情况,有效 这就是我添加的内容,每当我也更改我的链接时 /our-work#other-case 页面已显示但未相应过滤

 $( document ).ready(function() {
    var hash = window.location.hash.substr(1);
    switch(hash){
        case 'case-one':
        $(this).scrollTop(0);
                $('#case-one').click();
        case 'working':
        $(this).scrollTop(0);
                $('#working').click();
        case 'case-two':
        $(this).scrollTop(0);
                $('#case-two').click();
        case 'case-three':
        $(this).scrollTop(0);
                $('#case-three').click();
        case 'case-four':
        $(this).scrollTop(0);
                $('#case-four').click();
    }
});

最佳答案

这是一个不优雅但仅使用 JS 和 Html 的工作方法

在链接中指定 anchor 标记,例如 yourwebsite.com/portfolio#Flyers

然后

$( document ).ready(function() {
    var hash = window.location.hash.substr(1);
    switch(hash){
        case 'Flyers':
            $('#FlyersButtonId').click();
        ///..... case for other filters
    }
});

关于javascript - 如何链接到具有特定过滤器的投资组合页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45362270/

相关文章:

javascript - 如何通过ajax将表格单元格值传递给php

javascript - 使用 setTimeout 函数。和随机函数。为类元素添加动画

javascript - 删除jquery中ul的第一个li

javascript - 将 json 数组传递给 WebMethod

javascript - 使用 javascript 或 jquery 进行验证

Javascript 转换 yyyy-mm-dd hh :mm:ss like newDate ("day, month date year hh:mm:ss")

jquery - 需要 div 之类的 zopim 聊天服务

单击选项卡链接时,Javascript 选项卡内容仅闪烁,无法正确显示

html - 在使用网格布局的 Html 中,当我们的图像少于一行时,如何使最后一个图像左对齐

java - 无法通过使用 selenium 和 Java 来单击动态更改的 div