怎么做这个吧

时间:2018-06-11 19:58:57

标签: javascript angular

我正在创建一个有角度的简历,我正在寻找能够直观地量化某些科目的技能水平的东西。我喜欢这里:

slider barr??

我遇到的问题是我不确定我需要谷歌,所以我可以研究我需要的东西。我能找到的最接近的东西称为滑块。我的替代解决方案也是使用评级量表,虽然我不喜欢分离的恒星走这条路线。我更喜欢像照片一样的实线。

2 个答案:

答案 0 :(得分:2)

我会尝试使用自定义指令解决您的问题。现在我假设您使用的是@angular,因为您没有指定,但逻辑对所有版本都是可行的。

首先,设置假div滑块模板(@Component):

<div class="skill-slider">
  <div class="skill-level" [ngClass]="{low: isLow, med: isMed, high: isHigh}">      
  </div>
</div

然后你的css可以对应你的变量。因此,您可能需要创建更多变量:

    .skill-slider{
  width: 100px;
  border-radius: 30px;
  height: 5px;
  background-color: black;
}

.skill-level{
  height: 15px;
  width: 15px;
  border-radius: 20px;
  background-color: #4523EF;
  position: absolute;
  left: 0px;
  top: 3px;
}

.low{
  left: 20px
}

.med{
  left: 50px;
}

.high{
  left: 90px;
}

然后在你的控制器中设置变量

...
isMed = true;
isLow = false;
isHigh = false;
...

您的相应课程应该生效,滑块会相应移动。祝你好运!

这是一个你可以玩的小提琴,以使其正确。 https://jsfiddle.net/d1mfua3r/

答案 1 :(得分:1)

我将解决这个问题的方法:找一个好的CCS框架来使用(当我进行角度开发时,我喜欢“Bootstrapp”)。之后再看一些例子。这是让你接近所需要的东西。

制作一个有角度的* ngFor循环浏览主题列表“公共演讲”,“社交媒体”,“麦克风删除”,“打高尔夫球”等。然后在每个ngFor项目中使用此HTML。您可以通过执行{{object.yourtitle}}来使用字符串插值{{}}来获取“打高尔夫球”的值。我正在使用占位符名称,因为您没有发布任何代码

这是w3schools的HTML和CSS示例: https://www.w3schools.com/howto/howto_js_rangeslider.asp

HTML:

<div class="slidecontainer">
  <input type="range" min="1" max="100" value="50" class="slider" id="myRange">
</div>

CSS:

.slidecontainer {
        width: 100%; /* Width of the outside container */
    }

    /* The slider itself */
    .slider {
    -webkit-appearance: none;
    width: 100%;
    height: 15px;
    border-radius: 5px;   
    background: #d3d3d3;
    outline: none;
    opacity: 0.7;
    -webkit-transition: .2s;
    transition: opacity .2s;
    }

    /* Mouse-over effects */
.slider:hover {
        opacity: 1; /* Fully shown on mouse-over */
    }

.slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 25px;
    height: 25px;
    border-radius: 50%; 
    background: #4CAF50;
    cursor: pointer;
}

.slider::-moz-range-thumb {
    width: 25px;
    height: 25px;
    border-radius: 50%;
    background: #4CAF50;
    cursor: pointer;
}

滑块的Javascript:

var slider = document.getElementById("myRange");
var output = document.getElementById("demo");
output.innerHTML = slider.value; // Display the default slider value

// Update the current slider value (each time you drag the slider handle)
slider.oninput = function() {
    output.innerHTML = this.value;
}

如果您正在使用angular,那么您可以跳过“document.getElementById”的javascript,而是通过组件中的对象名称和值访问项目。